是否可以在不安装软件包的情况下生成`yarn.lock`文件?

cia*_*ben 14 javascript yarnpkg

我需要yarn.lock从我生成一个文件,package.json但我想避免node_modules创建..是否可能?

Yue*_*JIN 16

自纱线 v3.0.0-rc.10 起可用

yarn install --mode update-lockfile
Run Code Online (Sandbox Code Playgroud)

  • 对于 pnpm 用户:`pnpm i --lockfile-only` (3认同)

Ana*_*our 13

编辑:感谢@talon55,请查看下面的评论以获得解决方案,而无需任何额外的软件包:npm install --package-lock-only; yarn import

旧答案

这实际上是 NPM 为数不多的特性之一(npm install --package-lock-only ) 而 Yarn 不支持。

从以下 2 个开放的 Github 问题中可以看出,这是一个需求量很大的功能:57382340

我偶然发现了此处yarn generate-lock-entry记录的命令,但它绝对不能满足我们的要求。

我建议的解决方法是生成 NPM 锁定文件并yarn.lock使用synp将其转换为文件:

npm install -g synp
npm install --package-lock-only
synp --source-file package-lock.json
Run Code Online (Sandbox Code Playgroud)

请注意,Synp 需要安装软件包并且正确填充了 node_modules。这可能是也可能不是您的用例的问题。

  • 事实证明,Yarn 原生支持导入 package-lock.json 文件。因此,您可以在没有 synp 的情况下执行此操作,如下所示:`npm install --package-lock-only; 纱线进口` (5认同)
  • 尝试新的“yarn install --mode update-lockfile”。https://github.com/yarnpkg/berry/pull/2913 (5认同)