使用package-lock和npm link

6
我们公司开发了一个插件,然后将其作为实施项目的依赖项。
插件的开发人员首先通过在实施项目中执行“npm link”,然后运行“npm install”来编写代码。
一般的实施用户只需运行“npm install”,然后从我们的私有npm注册表中安装插件。这也是我们的Bitbucket构建方式。
问题出现在生成的package-lock上。我们想使用它是因为它避免了不同环境之间依赖关系不同的问题。但是,使用“npm link”链接的插件生成的package-lock文件与从注册表中获取的完全不同。
因此,这意味着要么插件开发人员无法正确安装所有东西(因为“npm install”会覆盖他们的“npm link”)。 要么普通用户/Bitbucket管道会收到错误,因为依赖树非常混乱。
有没有办法解决这个问题?我们应该使用不同的工具或者遵循不同的流程吗?我们已经尝试了多个Node版本,最新的LTS。
1个回答

3

你需要先运行npm install(或npm ci进行干净安装,参见https://docs.npmjs.com/cli/ci.html),这将根据package-lock.json文件安装依赖项。

然后,在获取正确的依赖项之后,你才能npm link你的私有依赖项。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接