我在用vue.js的vue-cli工具创建项目的时候出现了connect ECONNREFUSED 192.30.252.137:443 这个问题。
用的淘宝镜像
PS F:\myWeb\1guanggao\qixi2016> vue init webpack
? Generate project in current directory? Yes
vue-cli · connect ECONNREFUSED 192.30.252.137:443
connect ETIMEDOUT 192.30.252.137:443
现在出现这个问题,尝试ping这个地址,结果一直超时
各位知道什么原因导致的,怎么解决吗?
PHP中文网2017-04-17 15:25:48
我了個去,折騰了那麼久終於解決了~~~~
不知道你們的host檔案有沒有改過?
因為我的改過host翻牆,後來用lantern翻牆。今天無意間看到一個說把host相關翻牆設定刪了就可以的,我刪了github相關的設定結果真的就可以了。 。 。如果你們的host也有改過的可以試試看!
個中原因不懂,不過我猜有沒有可能是host檔案設定跟代理軟體的相關設定衝突了?
ringa_lee2017-04-17 15:25:48
簡單而言,原因是代理設定問題。
具體而言,是 vue-cli
中,使用 request
去查詢可下載的範本清單 以及 使用 download-git-repo
下載對應的範本。
request
模組request
沒有設定代理,你可以修改vue-init
和vue-list
文件中使用request
的地方,添加上對應的代理伺服器設置,例如vue-init
中的checkDistBranch
方法:
function checkDistBranch (template, cb) {
request({
proxy: "Your proxy address",
url: 'https://api.github.com/repos/' + template + '/branches',
headers: {
'User-Agent': 'vue-cli'
}
}, function (err, res, body) {
if (err) logger.fatal(err)
if (res.statusCode !== 200) {
logger.fatal('Template does not exist: ' + template)
} else {
var hasDist = JSON.parse(body).some(function (branch) {
return branch.name === 'dist'
})
return cb(hasDist ? template + '#dist' : template)
}
})
}
這樣能夠確保 vue-cli
可以查詢到對應的可下載範本清單。
download-git-repo
模組下載模組使用的是download-git-repo
, 這個模組又依賴download
模組, download
模組中使用了caw
模組,它可以讀取.npmrc
中我們設定的代理,所以當設定過.npmrc
中的代理程式時,下載範本的過程是不會出問題的。
如果你的網路環境需要設定代理伺服器才能存取外網,那麼你需要:
修改 request
的呼叫方法,新增 proxy
屬性。
設定你的 .npmrc
文件,設定好對應的代理伺服器。
簡單一點,你也可以直接下載對應的模板,例如 webpack-simple 放置在需要執行 vue init
的同級目錄中,使 vue init
能夠成功運作。
注意 webpack-simple
模板,使用的是 vue 2.0
版本,如果你想要基於 1.x
版本開發,請使用 vue init webpack-simple#1.0 my-project
指令指定模板分支。
ringa_lee2017-04-17 15:25:48
昨天是好的。 。更了2.5版本的vue-cli我的就跟原po發生了同樣的問題了~! ~! !啊啊啊啊啊啊啊啊啊啊啊啊啊~! !沒看懂啊。求解~!