在工作中,我们支持HTTP代理,并且git协议(端口9418)被拒绝.我的项目有NPM依赖项,其中一些依赖项具有使用git协议的依赖项,例如:
在我的 package.json
"dependencies": {
"jsdoc3" : "git+https://github.com/jsdoc3/jsdoc.git"
}
Run Code Online (Sandbox Code Playgroud)
和package.json
jsdoc3:
"dependencies": {
"crypto-browserify": "git://github.com/dominictarr/crypto-browserify.git#95c5d505",
"github-flavored-markdown": "git://github.com/hegemonic/github-flavored-markdown.git"
}
Run Code Online (Sandbox Code Playgroud)
我如何获得这些依赖项,如何告诉NPM使用git+https://
协议而不是git://
协议或能够使用git协议?
为了简化我在Windows上的事情(在Linux上创建SSH隧道会更容易),我使用GIT-Bash.
谢谢
小智 34
您可以使用以下命令告诉git使用https而不是git://:
git config --global url."https://".insteadOf git://
Run Code Online (Sandbox Code Playgroud)
最后我找到了一个肮脏的解决方案,但是工作正常.我修改了NPM的代码,用git
协议替换了http
协议(感谢开源)
在npm v1.1.69上,npm/lib/cache.js
我在文件中添加了以下几行addRemoteGit
// ssh paths that are scp-style urls don't need the ssh://
if (parsed.pathname.match(/^\/?:/)) {
u = u.replace(/^ssh:\/\//, "")
}
//begin trick
if(/^git:/.test(u)){
u = u.replace(/^git/, 'https');
}
//end trick
log.verbose("addRemoteGit", [u, co])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7686 次 |
最近记录: |