提问者:小点点

包装时如何使纱线在纱线安装时发生故障。还有纱线。锁是否不同步?


在一个项目中,我用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纱线。锁是否不同步?


共1个答案

匿名用户

您需要--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文件的使用方式如下:

  • 如果是纱线。锁存在,足以满足包中列出的所有依赖项。json,用纱线记录的确切版本。锁都装上了,而且纱。锁将保持不变。纱线不会检查新版本

如果您想确保yarn.lock不更新,请使用--honed-lockfile.