Phonegap Build CLI 失败 - 机器之间的节点代理不同?

Posted

技术标签:

【中文标题】Phonegap Build CLI 失败 - 机器之间的节点代理不同?【英文标题】:Phonegap Build CLI failing - Node proxy different between machines? 【发布时间】:2016-07-25 09:22:47 【问题描述】:

我们在两台不同的机器上使用 PhoneGap Build CLI,我们可以看出节点环境没有区别。在其中一台机器上,它可以正常工作。另一方面,我们收到以下消息:

[phonegap] compressing the app...
[phonegap] uploading the app...
_http_client.js:53
    throw new TypeError('Request path contains unescaped characters');
    ^

TypeError: Request path contains unescaped characters
    at new ClientRequest (_http_client.js:53:11)
    at Object.exports.request (http.js:31:10)
    at TunnelingAgent.exports.request (https.js:199:15)
    at TunnelingAgent.createSocket (/usr/local/lib/node_modules/phonegap/node_modules/phonegap-build-api/node_modules/request/tunnel.js:116:25)
    at TunnelingAgent.createSecureSocket [as createSocket] (/usr/local/lib/node_modules/phonegap/node_modules/phonegap-build-api/node_modules/request/tunnel.js:188:41)
    at TunnelingAgent.addRequest (/usr/local/lib/node_modules/phonegap/node_modules/phonegap-build-api/node_modules/request/tunnel.js:80:8)
    at new ClientRequest (_http_client.js:158:16)
    at Object.exports.request (http.js:31:10)
    at Object.exports.request (https.js:199:15)
    at Request.start (/usr/local/lib/node_modules/phonegap/node_modules/phonegap-build-api/node_modules/request/main.js:516:30)

嗅探发送到 _http_client.js 的请求后,成功的请求设置了proxy: undefined失败的请求设置了proxy: true

我们没有故意设置或修改与代理设置有关的任何内容。我们也尝试过重新安装节点。

我们正在使用节点 6.3.0 和 phonegap 6.2.9。

另外值得补充的是,我们在两台机器上运行npm config list,都没有设置代理。

任何建议表示赞赏!

【问题讨论】:

发布引发异常的代码行。我怀疑您有一些未正确编码的 URL。 【参考方案1】:

本身不是一个解决方案,但我们通过将 phonegap 降级到 6.2.9 解决了这个问题。问题立即消失。

【讨论】:

【参考方案2】:

查看phonegap的版本:

    phonegap -v

如果您拥有 6.3.0 版本,则必须这样做:

     Downgrade phonegap: npm install -g phonegap@6.2.9
     Check version: phonegap -v     (6.2.9)

【讨论】:

以上是关于Phonegap Build CLI 失败 - 机器之间的节点代理不同?的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap Build 和 CLI 的相对图标路径

cordova - 启动画面和应用程序屏幕在 Phonegap Build cli-6.1.0 上不起作用

Phonegap Build 和 WKWebView:我们这里有一个通信失败

排毒失败并显示“找不到模块 'jest-cli/build/cli/args'”

通过 phonegap build 构建时,地理位置不起作用

OneSignal 不再在 Phonegap-build 中构建