将 yarn.lock 同步回 package.json 并锁定
Posted
技术标签:
【中文标题】将 yarn.lock 同步回 package.json 并锁定【英文标题】:sync yarn.lock back into package.json and lock 【发布时间】:2018-04-04 21:33:02 【问题描述】:我有 package.json
和 yarn.lock
文件。
yarn.lock 已锁定版本,我想同步,并锁定(不带 ^)yarn.lock 中的所有版本,回到 package.json。
有什么简单的方法吗?
最后我希望我的 package.json 中根本没有“^”,因为它会导致太多麻烦,并且我想在运行全新的 yarn install 时专门升级包而不是不知不觉。
是否有任何工具或方法可以将 package.json 中的版本快速替换为 yarn.lock 中现有的版本?
【问题讨论】:
【参考方案1】:我最终自己做了一些东西:
sync-yarnlock-into-packagejson
它是一个小型实用程序,可以将现有的 package.json 与 yarn.lock 同步。
同步锁
将yarn.lock
版本同步到现有package.json
文件中,删除动态数字(例如使用^),保持静态版本不变。
安装
纱yarn global add syncyarnlock
或
新PMnpm install -g syncyarnlock
用法
Usage: syncyarnlock [options]
Sync `yarn.lock` package versions, into package.json
Options:
-V, --version output the version number
-d, --dir <path> directory path where the yarn.lock file is located (default to current directory)
-p, --dirPackageJson <path> directory of project with target package.json, if not set, -d will be used
-s, --save By default don't override the package.json file, make a new one instead package.json.yarn
-k, --keepUpArrow By default the ^ or any other dynamic numbers are removed and replaced with static ones.
-g, --keepGit By default direct git repositories are also replaced by the version written in yarn.
-l, --keepLink By default direct link: repositories are also replaced by the version written in yarn.
-a, --keepVariable <variable>By default everything is converted to yarn version, write a part of the type you wish not to convert, seperate by comma if more than one, to not replace git and link you would use +,link:
-h, --help output usage information
Transforms yarn.lock files to JSON
Examples:
//perform inside a directory with yarn.lock and package.json, will output package.json.yarn in the same directory.
syncyarnlock
【讨论】:
您能否检查此链接中提到的问题 - github.com/vasilevich/sync-yarnlock-into-packagejson/issues/1 是的,我做到了,谢谢你告诉我,我会尽快修复它以上是关于将 yarn.lock 同步回 package.json 并锁定的主要内容,如果未能解决你的问题,请参考以下文章
在 docker 容器内安装依赖项后如何复制回主机 package-lock.json/yarn.lock?
Yarn:将 JavaScript 依赖项重新部署到生产服务器的过程(使用 `yarn.lock` 文件)