yarn import
yarn import
从现有的npm安装node\_modules
文件夹生成yarn.lock
。
yarn import
该命令帮助当前依赖项目的迁移npm-shrinkwrap.json
,尽可能最大限度地减少lockfile与现有依赖关系树之间的差异。
动机
许多项目目前使用npm shrinkwrap
或检查它们的node_modules
源代码控制,因为它们具有脆弱的依赖关系树。这些项目无法轻松迁移到Yarn,因为yarn install
可能会生成一个截然不同的逻辑依赖关系树。不是所有的树都可以用Yarn代表yarn.lock
,并且一些有效的树在安装时会自动被删除。这些细微差别和其他细节对人工移植构成重大障碍。
yarn import
旨在通过根据正常require.resolve()
解析规则使用node_modules
内部版本生成yarn.lock
文件来缓解这一挑战。如果Yarn解析机制无法完全满足现有的依赖关系树,则会发出警报,以便您可以手动查看更改。预先检查现有node_modules
树的有效性,并且生成的锁文件应该yarninstall
可行(兼容性失败,无法解析的依赖关系,自动重复数据删除等)
$ yarn import
yarn import vx.x.x
success Folder in sync.
warning Using version "2.2.4" of "lru-cache" instead of "2.7.3" for "ngstorage > grunt > minimatch"
warning Using version "2.0.6" of "readable-stream" instead of "2.2.9" for "ngstorage > karma > chokidar > readdirp"
[...]
success Saved lockfile.
✨ Done in 11.96s.