【问题标题】:What is the yarn alternative of npm-shrinkwrap?npm-shrinkwrap 的纱线替代品是什么?
【发布时间】:2022-07-16 04:31:31
【问题描述】:

npm-shrinkwrap 确保已安装的软件包也具有发布到注册表时使用的相同版本的依赖项(这些版本在 npm-shrinkwrap 中说明,然后在安装时使用)。

我目前正在使用 yarn(以及用于发布的 lerna)并在使用工作区进行 monorepo 项目。现在我想让 monorepo 中的每个包都具有npm-shrinkwrap 提供的相同保证。

npm-shrinkwrap 的一个缺点是它不支持工作区。因此我不能使用npm-shrinkwrap,因为它只在根目录下创建并且不会影响monorepo 中各个包的安装方式。

由于我使用的是yarn,我想知道在纱线中是否有npm-shrinkwrap 的替代品?

或者更好的问题是,使用 yarn/lerna,我如何锁定版本依赖项以进行发布,这样当我在 mono-repo 中的包被下载时,它们会与依赖项的确切版本(和传递依赖项)一起下载) 是在发布时指定的吗?

【问题讨论】:

    标签: node.js npm package.json yarn-workspaces shrinkwrap


    【解决方案1】:

    我在yarn docs(经典yarn 1.x)中找到了以下内容

    如果您现在正在使用npm-shrinkwrap.json 文件,请注意您最终可能会得到一组不同的依赖项。 Yarn 不支持 npm shrinkwrap 文件,因为它们中没有足够的信息来支持 Yarn 更具确定性的算法。如果您使用的是 shrinkwrap 文件,则可能更容易将从事该项目的每个人都转换为同时使用 Yarn。只需删除现有的npm-shrinkwrap.json 文件并签入新创建的yarn.lock 文件即可。

    从这里: https://classic.yarnpkg.com/en/docs/migrating-from-npm

    【讨论】:

      猜你喜欢
      • 2019-01-14
      • 1970-01-01
      • 2020-07-26
      • 2020-02-17
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多