【问题标题】:Using package-lock and npm link使用 package-lock 和 npm 链接
【发布时间】:2020-06-05 22:38:06
【问题描述】:

我们公司开发了一个插件,它是实现项目的依赖项。

插件的开发者编写他们的代码,首先在实现项目中对插件执行“npm link”,然后运行“npm install”。

一般实施用户只需运行“npm install”,然后从我们的私有 npm 注册表安装插件。这也是我们的 bitbucket 构建运行的方式。

生成的包锁出现问题。我们想使用一个,因为它避免了不同环境之间依赖关系不同的问题。但是,使用“npm link”ed 插件生成的 package-lock 文件与使用从注册表中提取的插件完全不同。

随后,这意味着插件开发人员无法正确安装所有内容(因为“npm install”会覆盖他们的“npm 链接”)。或者一般用户/bitbucket 管道收到错误,因为依赖关系树如此混乱。

有没有办法解决这个问题?我们应该使用不同的工具,还是遵循不同的流程?我们已经尝试了多个节点版本,直到最新的 LTS。

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    您应该首先运行 npm install (或 npm ci 进行全新安装,请参阅 https://docs.npmjs.com/cli/ci.html)。这应该根据您的 package-lock.json 文件安装依赖项。

    然后,只有在获得正确的依赖后,你才能 npm 链接你的私有依赖。

    如果您在 npm 链接之后运行 npm install(或 npm ci),安装将覆盖链接(这是预期的行为)。

    【讨论】:

      猜你喜欢
      • 2017-12-07
      • 2020-10-08
      • 1970-01-01
      • 2022-01-17
      • 2020-07-06
      • 2020-02-26
      • 2022-11-24
      • 2015-04-26
      • 2018-10-07
      相关资源
      最近更新 更多