从特定版本的 Git 安装 npm

新手上路,请多包涵

假设我已经为 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,或者是否有更好的解决方案?

原文由 Golo Roden 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 751
2 个回答

必须从 registry 获得 依赖 项,只需 指定 version 描述符 即可安装。

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

但是,如果它不在注册表中,则必须通过 URLGit URL 引用它。要使用 Git URL 指定版本,请在 URL 片段 的末尾包含适当的 <commit-ish> ,例如标签。

例如,对于名为 0.3.1 的标签:

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

注意:上面的代码片段显示的基本 URL 与问题中发布的相同。

剪断部分( ... )应填写:

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

而且,当 SSH 访问不可用时,将需要不同的地址格式:

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


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

原文由 Jonathan Lonowski 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏