首页 > 解决方案 > 如何专门使用 NPM 本地依赖项进行本地开发,以及使用来自外部注册表的一个依赖项进行生产?

问题描述

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

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

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

"dependencies": {
  "@teaminkling/autolib": "^0.1.1"
},

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

"dependencies": {
  "@teaminkling/autolib": "file:../autolib"
},

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

谢谢您的帮助!

标签: node.jsnpm

解决方案


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


推荐阅读