如何自动链接本地npm包?

2024-04-21

我正在构建两个相互依赖的私有 npm 包。

说我有:

project
  /my-commons
     package.json :
     {
       name : "my-commons",
       version : "0.0.1"
       ...
     }

  /my-server
     package.json :
     {
       dependencies : {
          "my-commons" : "0.0.1"
       }
     }

我可以使用“npm link”来安装“commons”包。所以任何人愿意 开始在服务器上工作必须做:

  • 结账项目
  • cd 我的服务器
  • npm 链接 ../my-commons
  • npm 安装

并在 /my-server/node_modules 中添加了到 ../my-commons 的符号链接,一切都很好。

但是有没有办法告诉 npm 'my-commons' 包将always位于该文件夹中,这样您就可以执行以下操作:

  • 结账项目
  • cd 我的服务器
  • npm 安装

或者我在这里遗漏了一些明显的东西?

Thanks


Maybe.

但首先:如果my-commons需要由my-server那么保留它很可能是个好主意my-server/node_modules即使这是多余的。在大多数情况下,最好将模块的依赖项与应用程序的其余部分隔离。

在那种场景下,npm link可以在开发期间使用my-commons并想要使用以下更改my-server无需npm publish my-commons.

在生产中你不会想使用npm link,因为依赖模块将失去对它们最终使用的链接模块版本的控制。如果my-server依赖于取决于my-commons0.1.0,但是你npm link编辑了您的 1.0.1 预发布版本my-commons模块可能会崩溃。

However,自版本 1.2.10(随节点 0.8.19 一起提供)起,NPM 支持对等依赖关系。 对等依赖关系允许您指定my-server要求my-commons安装“此外”my-server。这确实not使您能够require("my-commons") inside my-server但如果my-server是一个插件my-commons。 了解更多信息:http://blog.nodejs.org/2013/02/07/peer-dependencies/ http://blog.nodejs.org/2013/02/07/peer-dependencies/

最后,既然你说你正在开发private软件包:如果安装软件包给您带来麻烦,因为您无法将软件包发布到公共 NPM 注册表,请查看指定依赖项的替代方法(git-、http-URL、TGZ 文件):https://docs.npmjs.com/files/package.json#dependencies https://docs.npmjs.com/files/package.json#dependencies

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何自动链接本地npm包? 的相关文章

随机推荐