«配置 nodejs + vue 的蛋疼之旅»
by pluvet on Jul 7, 2019

yum install nodejs 十分顺利。
然而,安装 vue 时:一直卡在 fetchMetadata
启用和关闭代理都无效(而代理却对其他所有软件都十分有效)

搜索一番,说要用 淘宝源:npm config set registry https://registry.npm.taobao.org 好,这回 fetchMetadata 不卡了。

然而,这次又一直卡在 sill mapToRegistry。我一看网络占用,0 kb/s。什么鬼??

搜索一番,说要用 淘宝源:npm config set registry https://registry.npm.taobao.org 妈的,老子不是用着了吗,还不是卡着。

好,我等。

然而,进度条半个小时动也不动。一怒之下 Ctrl+C。

搜索一番,老外说,要加个 --verbose 看看什么情况。

好,我加。

果然一看日志,npm 一直在死循环:

npm info retry will retry, error on last attempt: Error: unexpected end of file

于是 Google 之,

第一个打开:https://github.com/npm/npm/issues/8747。结果是:We're closing this support issue as it has gone three days without activity.(三天未解决,自动关闭)。无法解决。

第二个打开:https://github.com/npm/npm/issues/15614。说是代理导致的。问题是我开不开代理都是这样。无法解决。

第三个打开:https://github.com/npm/npm/issues/9225。说是代理导致的。问题是我开不开代理都是这样。无法解决。

第四个打开:https://segmentfault.com/q/1010000008656463。一个老哥推荐使用 nrm。

好,我用。结果卡在 sill mapToRegistry。这???这是无中生有啊!

另一个大哥建议执行 npm install -g cnpm --registry=https://registry.npm.taobao.org

然而,这次又一直卡在 sill install loadCurrentTree。

于是 Google 之,

不用废话你们也知道,我看了第一页所有答案,都无法解决。基本上就在这三个地方卡住。

终于,翻来覆去,找到一个实在小哥的解答:

Changing the registry URL from HTTPS to HTTP fixed it for me:

npm config set registry http://registry.npmjs.org/

然而这次不卡了,虽然偶尔在 “fetchMetadata”停留。然而,网速显示 node 只有 xx b/s,这他妈要人类登上火星之后多少年才能下载完?进度条也很不争气地一直停在一个地方。

我急中生智,执行

npm config set registry http://registry.npm.taobao.org/

好,这回又是

npm info retry will retry, error on last attempt: Error: unexpected end of file

那还是用国外的源吧。再挂一次代理试试。于是改了改 http_proxy 等环境变量。

速度有了显著的提升!SS 已经达到了 0.1Mbps 的高速。(醉了醉了

进度条也还是很不争气地一直停在一个地方。

几番周折之后,找到一个 mirror:

npm config set registry http://registry.cnpmjs.org

顺便取消了代理。

好啊,这次屏幕倒是闪烁得飞快,但是进度条十分钟完全没有什么变化啊!任务管理器显示实时网速是 0.3 Mbps,还都是 Chrome 贡献的。

偶然看到一篇文章:http://www.fly63.com/article/detial/333 什么,yarn 这么牛逼?给我来一个。

curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn

不得不说,yum 就是快,即使是国外的 repo 比某pm快。

yarn global add @vue/cli

看看这贴心的提示,npm 学学吧!

2019-07-06T16:36:07.png

然而还是遇到了困难,这次就是 CentOS 的锅了(早知道装个 Fedora 了)。

2019-07-06T16:37:17.png

refer 了一下 https://linuxize.com/post/how-to-install-node-js-on-centos-7/

# 注意,在这之前先启用代理
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install -y nodejs yarn

草,这是好的。直接抛弃 npm,Good⚦!

下载速度感人,于是去问谷歌,一看这搜索推荐就知道有同胞在受同样的苦:

2019-07-06T16:45:22.png

于是找到清华大哥的源:

https://mirrors.tuna.tsinghua.edu.cn/nodesource/

其实还没等我配置,就已经下载好了,以 80kb/s 的速度。好吧:

sudo yarn global add @vue/cli

速度依旧感人,连 yarn 也看不下去了:

info There appears to be trouble with your network connection. Retrying...
sudo yarn global add yrm

不出所料,还是死在医院门口了:

2019-07-06T16:51:54.png

yarn config set registry registry.npm.taobao.org.w.cdngslb.com
sudo yarn global add yrm

好。这次就快了。fetch 比 resolve 还快。不过比起 yum 就是个弟弟。

君の頬をつたう赤い涙

2019-07-06T16:56:22.png

飞快地打下 vue --version

然而,

bash: vue: command not found

NOT FOUND? ARE U KIDDING? NO!!!! NO!!!! NO!!!!

难道官方教程是骗人的吗?

我究竟做错了什么???

好在我们都知道,没有什么是重启解决不了。reboot。

[pluvet@localhost fr]$ vue --version
3.9.2

终于搞定了。历时三个小时。

顺便分享个脚本

#!/bin/sh
if [ "$1" = "1" ]; then
        export http_proxy=http://192.168.0.100:1080
        export https_proxy=http://192.168.0.100:1080
        echo "enabled"
else
        unset http_proxy
        unset https_proxy
fi

echo "success"

参考文献

https://blog.csdn.net/qq_21937107/article/details/84872896
https://stackoverflow.com/questions/11773509/npm-behind-a-proxy-fails-with-status-403
https://blog.fazero.me/2015/09/15/%E8%AE%A9%E7%BB%88%E7%AB%AF%E8%B5%B0%E4%BB%A3%E7%90%86%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E6%B3%95/
https://www.cnblogs.com/lyd2016/p/6808379.html
https://linuxize.com/post/how-to-install-node-js-on-centos-7/
https://learnku.com/articles/15976/yarn-accelerate-and-modify-mirror-source-in-china
https://mirrors.tuna.tsinghua.edu.cn/nodesource/rpm_10.x/el/7/x86_64/

仅有一条评论

  1. pppkq pppkq

    后面只写了系统代理的设置,代理的转发没有写

添加新评论