假设我已经为Node.js编写了一个模块,我想使其保密。我知道我可以(应该)添加以下行:
"private": "true"
到package.json文件,我也知道我可以npm install使用文件系统路径或git存储库(包括GitHub)的链接来使用此模块。
package.json
npm install
我也知道我可以将这样的文件系统路径或git repo的链接放入package.json,以便该dependencies部分看起来像这样:
dependencies
"dependencies": { "myprivatemodule": "git@github.com:..." }
我现在想要的不是链接到最新版本,而是链接到特定版本。我知道的唯一可能性是使用其ID链接到特定提交。但这比使用版本号(例如)缺乏可读性和可维护性0.3.1。
0.3.1
所以我的问题是:是否仍然可以指定这样的版本号,并使npm在git存储库中搜索包含该版本的最新提交?
如果没有,您如何在项目中解决此问题?您使用提交ID还是对此有更好的解决方案?
一个依赖关系必须是可以从registry要由刚安装指定一个version描述符。
registry
version
当然,您可以创建并使用自己的注册表,而不是registry.npmjs.org不应该公开共享您的项目。
registry.npmjs.org
但是,如果不在注册表中,则必须使用URL或Git URL进行引用。要使用Git URL指定版本<commit- ish>,请在末尾作为URL片段包含相应的标记(例如标签)。
<commit- ish>
例如,对于名为的标签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"
注意 :以上代码段显示的基本网址与问题中发布的网址相同。
删除的部分(...)应该填写:
...
"myprivatemodule": "git@github.com:{owner}/{project}.git#0.3.1"
而且,当无法使用SSH访问时,将需要使用其他地址格式:
"myprivatemodule": "git://github.com/{owner}/{project}.git#0.3.1"
根据您的操作系统,您也许还可以link将依赖项从Github中克隆到另一个文件夹中。
link