我们在公司防火墙后面运行Cordova时遇到问题。代理。
最初我们认为此问题与此处描述的问题有关:http://wil.boayue.com/blog/2013/06/14/using-npm-behind-a-proxy/。
我们发现虽然npm可以按此处所述修复,但没有修复Cordova。
我们已经将npm配置为指向我们的Sona类型存储库,但我们发现Cordova没有从npm中获取“注册表”设置,因为它在几个地方对注册表进行了硬编码。 即在lazy_load.js
// Equivalent to a command like
// npm cache add cordova-android@3.5.0
// Returns a promise that resolves to directory containing the package.
function npm_cache_add(pkg) {
var npm_cache_dir = path.join(util.libDirectory, 'npm_cache');
// 'cache-min' is the time in seconds npm considers the files fresh and
// does not ask the registry if it got a fresher version.
var platformNpmConfig = {
'cache-min': 3600*24,
cache: npm_cache_dir,
//OLD registry: 'https://registry.npmjs.org'
//HACK
registry: 'http://ourPrivateServer/nexus/content/repositories/npm-central/'
};
#148行是我们必须用第149行修改的原始行。
例如,当我们执行“cordova platform add ios”时,会出现此问题。
我们想知道是否有其他人遇到过这个问题并且有更多的解决方案,因为黑客科尔多瓦的装置看起来很讨厌?
答案 0 :(得分:1)
这是由git配置引起的,并将git更改为http协议
$ git config --global http.proxy http://www.yourproxy.com:port
$ git config --global https.proxy http://www.yourproxy.com:port
$ git config --global url."https://".insteadOf git://
在这些命令之后,您的.gitconfig文件(通常是您的用户文件夹)将填充此内容:
[url "https://"]
insteadOf = git://
[http]
proxy = http://www.yourproxy.com:port
[https]
proxy = http://www.yourproxy.com:port
推荐的其他代理配置:
-- npm
$ npm config set proxy http://www.yourproxy.com:port
$ npm config set http-proxy http://www.yourproxy.com:port
$ npm config set https-proxy http://www.yourproxy.com:port
-- bower
$ set HTTP_PROXY=http://www.yourproxy.com:port
$ set HTTPS_PROXY=http://www.yourproxy.com:port