使用 npm install 跳过 GitHub 个依赖项
Skip GitHub dependencies with npm install
简单介绍一下,我有自动构建,可以从 NPM 安装依赖项,运行 对它们进行一些分析。所以重要的是要考虑到,在 运行ning npm install
之后,应用程序甚至不需要工作,我只需要依赖项。
为了简单起见,假设我的 package.json 中的 dependencies
看起来像这样(实际上有更多的依赖关系,但它们并不重要):
"dependencies": {
"pdf2json": "git://github.com/jmdeejay/pdf2json.git#a384122f",
"phone": "~2.3.7",
},
phone
可以正常安装,但是pdf2json
不行。
当我 运行 npm install
时,出现以下错误:
[10:21:19][Step 1/4] npm ERR! C:\Program Files\Git\cmd\git.EXE ls-remote -h -t git://github.com/jmdeejay/pdf2json.git
[10:21:19][Step 1/4] npm ERR!
[10:21:19][Step 1/4] npm ERR! fatal: unable to connect to github.com:
[10:21:19][Step 1/4] npm ERR! github.com[0: 192.30.253.112]: errno=No such file or directory
[10:21:19][Step 1/4] npm ERR! github.com[1: 192.30.253.113]: errno=No such file or directory
[10:21:19][Step 1/4] npm ERR!
[10:21:19][Step 1/4] npm ERR!
[10:21:19][Step 1/4] npm ERR! exited with error code: 128
我认为这可能与构建服务器的防火墙或所述服务器的某些配置有关,但这不是我想要解决的问题。
我查看了 npm-config and npm install 文档,但找不到我想要的标志。我想知道:有没有一种方法可以跳过 NPMrepository 以外的其他来源的依赖项,或者在其中一个失败时继续安装依赖项?
我不需要分析这个包,因为它间接属于我的组织,所以我完全可以跳过它,但我不能简单地将它从 package.json
中删除,因为它是用于在其他场景下真正安装应用。
编辑
有评论指出使用 git://
可能不是一个好的解决方案,但根据 NPM 文档,这应该可行。以下截图来自npm documentation,第四行符合我的配置
我可以确认 git://
不是拼写错误,它是在一个正在运行的项目的 package.json
中以这种方式输入的。我也没有机会更改此配置文件,因为我没有此项目的所有权。
回答我自己的问题感觉很尴尬,但我在@evolutionbox 的评论的帮助下找到了解决方案。
我无法修改 package.json
文件,但我最终在我的脚本中这样做了:
git config --global url."https://".insteadOf "git://"
npm install
git config --global url."git://".insteadOf "https://"
通过这种方式,我暂时将我的配置更改为有效的配置(尽管根据 npm 的文档,git://
应该有效)
简单介绍一下,我有自动构建,可以从 NPM 安装依赖项,运行 对它们进行一些分析。所以重要的是要考虑到,在 运行ning npm install
之后,应用程序甚至不需要工作,我只需要依赖项。
为了简单起见,假设我的 package.json 中的 dependencies
看起来像这样(实际上有更多的依赖关系,但它们并不重要):
"dependencies": {
"pdf2json": "git://github.com/jmdeejay/pdf2json.git#a384122f",
"phone": "~2.3.7",
},
phone
可以正常安装,但是pdf2json
不行。
当我 运行 npm install
时,出现以下错误:
[10:21:19][Step 1/4] npm ERR! C:\Program Files\Git\cmd\git.EXE ls-remote -h -t git://github.com/jmdeejay/pdf2json.git
[10:21:19][Step 1/4] npm ERR!
[10:21:19][Step 1/4] npm ERR! fatal: unable to connect to github.com:
[10:21:19][Step 1/4] npm ERR! github.com[0: 192.30.253.112]: errno=No such file or directory
[10:21:19][Step 1/4] npm ERR! github.com[1: 192.30.253.113]: errno=No such file or directory
[10:21:19][Step 1/4] npm ERR!
[10:21:19][Step 1/4] npm ERR!
[10:21:19][Step 1/4] npm ERR! exited with error code: 128
我认为这可能与构建服务器的防火墙或所述服务器的某些配置有关,但这不是我想要解决的问题。
我查看了 npm-config and npm install 文档,但找不到我想要的标志。我想知道:有没有一种方法可以跳过 NPMrepository 以外的其他来源的依赖项,或者在其中一个失败时继续安装依赖项?
我不需要分析这个包,因为它间接属于我的组织,所以我完全可以跳过它,但我不能简单地将它从 package.json
中删除,因为它是用于在其他场景下真正安装应用。
编辑
有评论指出使用 git://
可能不是一个好的解决方案,但根据 NPM 文档,这应该可行。以下截图来自npm documentation,第四行符合我的配置
我可以确认 git://
不是拼写错误,它是在一个正在运行的项目的 package.json
中以这种方式输入的。我也没有机会更改此配置文件,因为我没有此项目的所有权。
回答我自己的问题感觉很尴尬,但我在@evolutionbox 的评论的帮助下找到了解决方案。
我无法修改 package.json
文件,但我最终在我的脚本中这样做了:
git config --global url."https://".insteadOf "git://"
npm install
git config --global url."git://".insteadOf "https://"
通过这种方式,我暂时将我的配置更改为有效的配置(尽管根据 npm 的文档,git://
应该有效)