我在用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
命令指定模板分支。