在一个项目中,我用Thread替换了npm以获得它的好处,并且通过Thread强制执行我们的依赖关系。锁定
。
现在,一个开发人员添加了一个npm@4库,它只改变了package.json
,当然不是yarn.lock
。
我本以为yarn安装
命令会在构建服务器上崩溃,但在我看来,yarn有一个意想不到的行为,即在其最新版本中添加这些库,然后在远程:
$ yarn install
[1/4] Resolving packages...
[2/4] Fetching packages...
warning fsevents@1.1.2: The platform "linux" is incompatible with this module.
info "fsevents@1.1.2" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 5.07s.
这与纱线的用途相矛盾,因为构建作业不会推动纱线。将
锁定回存储库,也不应将其锁定。
我希望每个开发人员负责他们正在签入的版本。
因此,如果软件包已安装,是否有办法让
和纱线安装
以错误代码退出。json纱线。锁
是否不同步?
您需要--freezed lockfile
参数:
$ yarn install --frozen-lockfile
yarn install v0.27.5
warning ../package.json: No license field
[1/4] Resolving packages...
error Your lockfile needs to be updated, but yarn was run with `--frozen-lockfile`.
最近,纱线安装文档中也明确了这一点:
纱线安装
将package.json中列出的所有依赖项安装到本地node_modules文件夹中。
yarn.lock
文件的使用方式如下:
如果您想确保yarn.lock不更新,请使用--honed-lockfile.