Skip to content

Instantly share code, notes, and snippets.

@dacioromero
Created March 13, 2020 20:36
Show Gist options
  • Save dacioromero/4a997e265d112e7e43a3a29517398602 to your computer and use it in GitHub Desktop.
Save dacioromero/4a997e265d112e7e43a3a29517398602 to your computer and use it in GitHub Desktop.
const fs = require('fs')
const lockfile = require('@yarnpkg/lockfile')
const package = require('./package.json')
const lock = lockfile.parse(fs.readFileSync('yarn.lock', 'utf-8')).object
const allDeps = new Set()
const parseDep = ([name, version]) => {
allDeps.add(`${name}@${version}`)
}
Object.entries(package.dependencies).forEach(parseDep)
Object.entries(package.devDependencies).forEach(parseDep)
const newLock = Object.fromEntries(Object.entries(lock).filter(([dep]) => allDeps.has(dep)))
const newLockString = lockfile.stringify(newLock)
fs.writeFileSync('yarn.lock', newLockString)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment