当前位置: 首页 > 面试题库 >

从Git安装npm到特定版本

唐昊焜
2023-03-14
问题内容

假设我已经为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还是对此有更好的解决方案?


问题答案:

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

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

但是,如果不在注册表中,则必须使用URL或Git 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中克隆到另一个文件夹中。



 类似资料:
  • 假设我已经为Node.js编写了一个模块,我希望它是私有的。我知道我可以(应该)加上一行:

  • 问题内容: 通过npm安装特定版本需要运行什么命令? 如果我运行代码 npm install -g cordova, 它将安装最新版本。由于我使用的是多台笔记本电脑和计算机,因此当我来回切换它们时,它们需要具有相同的版本。 这是我正在使用的IONIC的版本,并且是首选版本:我想避免并 更新 它们,因为如果使用最新版本,可能会遇到错误。 顺便说一句,我通过github https://github.

  • 我想在我的项目中使用npm从github安装引导加载程序 目前,他们正在维护该项目的两个版本,可与webpack版本1和2兼容。 我想安装版本1。我应该使用什么npm命令来安装这个? 我尝试使用下面的一个,但它不工作。

  • 问题内容: 如何安装特定版本的Docker(如)? 我在Docker官方文档中找不到任何文档。为Ubuntu引用此链接。 请按照以下说明安装docker版本: 另外,请按照以下说明安装最新版本的docker : 如何安装特定版本的? 问题答案: 从这个github得到了答案。 以上提交的摘要:- 如果权限问题,则用作: 奖金提示: 不知道哪个版本?然后点击后为: 查看可用的Docker版本列表。

  • 现在如果我用这个命令 它将创建一个具有最新版本(如5.2)的laravel项目,但是如果我想安装一个特定的版本(如5.1版),该怎么办? 更新::我正在寻找laravel安装程序命令,是否有任何选项/参数用于特定版本的安装?

  • 一旦我尝试在Windows上安装Laravel版本5.2,它显示错误。其他较新版本正在成功安装。 我有一个PHP版本5.6。40和作曲家已安装。 警告:需要(C:\xampp\htdocs\Media\bootstrap/.../供应商/autoload.php):无法打开流:第17行的C:\xampp\htdocs\Media\bootstrap\autoload.php中没有这样的文件或目录