我如何专门使用 NPM 本地依赖项进行本地开发,并使用来自外部注册表的一项进行生产?

Tho*_*mas 2 node.js npm

我正在开发一套工具,这些工具都使用同一个库中的代码。图书馆也是内部开发的。

当我发布一个工具时,我希望它使用来自 NPM 注册表 (npmjs.com) 的特定版本的库,但是当我在本地开发它时,我希望它专门使用相对本地包(即:)../some_package。似乎我可以使用不同的环境变量和scriptsin来做到这一点,package.json但这似乎非常迂回。

在这些工具之一中重要的部分如下所示:

"dependencies": {
  "@teaminkling/autolib": "^0.1.1"
},
Run Code Online (Sandbox Code Playgroud)

...这很好,适用于生产。但是,要在本地处理它并仍然进行版本控制,我需要这样做:

"dependencies": {
  "@teaminkling/autolib": "file:../autolib"
},
Run Code Online (Sandbox Code Playgroud)

我希望这个问题是重复的,因为我认为这是一种非常常见的开发模式,但一段时间后我找不到任何东西。我也欢迎关于处理这种库依赖管理的更好方法的评论。

谢谢您的帮助!

Nic*_*rdy 6

运行npm link里面autolib源,然后运行npm link @teaminkling/autolib在要使用与开发版本的任何包源。您package.json仍然应该参考生产的真实版本,但对于本地链接的包,它们将被忽略。