一尘不染

从Git安装npm到特定版本

node.js

假设我已经为Node.js编写了一个模块,我想使其保密。我知道我可以(应该)添加以下行:

"private": "true"

package.json文件,我也知道我可以npm install使用文件系统路径或git存储库(包括GitHub)的链接来使用此模块。

我也知道我可以将这样的文件系统路径或git repo的链接放入package.json,以便该dependencies部分看起来像这样:

"dependencies": {
  "myprivatemodule": "git@github.com:..."
}

我现在想要的不是链接到最新版本,而是链接到特定版本。我知道的唯一可能性是使用其ID链接到特定提交。但这比使用版本号(例如)缺乏可读性和可维护性0.3.1

所以我的问题是:是否仍然可以指定这样的版本号,并使npm在git存储库中搜索包含该版本的最新提交?

如果没有,您如何在项目中解决此问题?您使用提交ID还是对此有更好的解决方案?


阅读 514

收藏
2020-07-07

共1个答案

一尘不染

一个依赖关系必须是可以从registry要由刚安装指定一个version描述符

当然您可以创建并使用自己的注册表,而不是registry.npmjs.org不应该公开共享您的项目。

但是,如果不在注册表中,则必须使用URLGit URL进行引用。要使用Git URL指定版本<commit- ish>,请在末尾作为URL片段包含相应的标记(例如标签)。

例如,对于名为的标签0.3.1

"dependencies": {
  "myprivatemodule": "git@github.com:...#0.3.1"
}

注意 :以上代码段显示的基本网址与问题中发布的网址相同。

删除的部分(...)应该填写:

"myprivatemodule": "git@github.com:{owner}/{project}.git#0.3.1"

而且,当无法使用SSH访问时,将需要使用其他地址格式:

"myprivatemodule": "git://github.com/{owner}/{project}.git#0.3.1"

根据您的操作系统,您也许还可以link将依赖项从Github中克隆到另一个文件夹中。

2020-07-07