事情起因
- 搭建 blog 需要,我是走 hexo + github 路線
- 安裝 hexo 要先安裝 nodejs 和 npm,結果卡在安裝 npm 不斷踩坑
坑點一:官方路線
-
-
緊接着會跳轉微軟官網,微軟推薦用 nodejs 版本管理器 nvm 安裝
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
- 我試着跟着操作但總是報錯
curl (7) error
遂放棄
坑點二:網上流傳較多的 WSL 包管理器先安裝再更新法
PART I: 安裝 nodejs 和 npm
- 參考 WSL Ubuntu 安裝 nodejs 和 cnpm 和 玩轉WSL(7)之nodejs環境配置
- 由於 WSL apt包管理器直接安裝版本過時,所以通過以下這個 Github 項目 來安裝指定的版本
- 目前微軟商城最新版本可找到 Ubuntu 20.x,而當前時間節點是
2022-02-17
,最新版本 nodejs 是 v17.x(最新穩定版本 v16.x),所以我選擇了 v17.x ,輸入以下命令
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash - #安裝nodejs
sudo apt install -y nodejs
sudo npm cache clean -f #清理緩存模塊
sudo npm install -g n #使用 n模塊 管理 nodejs 版本
目前為止都比較順利,通過查看版本號驗證 nodejs 和 npm 安裝是否成功
node -v # v17.5.0
npm -v # v8.4.1
但緊跟着安裝 hexo 就爆大炸了,error ECONNREFUSED
就如老朋友一樣親切
看提示我以為是代理的問題
PART II: 處理代理(其實是個坑點,不用處理,我只是記錄下來)
先給大家介紹下背景
-
第一,dns 設置(控制面板->網絡和共享中心->更改適配器設置(左欄)->當前網卡右擊屬性->雙擊 ipv4)
-
第二,本地代理的設置(右擊開始->設置->網絡和 Internet->代理)
- 第三,hosts 文件(WSL 終端下,輸入
vi /etc/hosts
)
背景介紹完,之后就開始踩坑了(請不要跟着做!!!)
-
Step 1,設置全局代理(這些代理地址及端口上面已經查出來了)
-
Step 2,設置 npm 代理(首先了解到國內
npm install
速度很慢,所以大部分資料推薦更換注冊點為阿里set registry https://...
;其次是現在網上大部分資料給出的registry
快過時了,參考 npm 更換域名通知,其實你也可以通過 configure 提示信息發現就算用舊域名進去也會重定向到新域名)
-
Step 3,安裝 cnpm,上一點說過國內訪問 npm 太慢,所以大部分教程會給出一個叫 cnpm 的東西,通過他安裝能快很多(然而對於我無效,還見到了老朋友)
至此,我開始吃不下飯睡不着覺,因為無論我怎么改代理(設為 null 或設為 localhost 、或者更改端口等等)總能遇到我們的老朋友 error ECONNREFUSED
完結篇
-
在我不懈努力下,終於找到一篇較有參考意義的 post——npm ERR! Error blabla
-
我也試着為我們的 registry 顯示添加一個 resolved addr
-
第一步,找到這個 ip
-
第二步,添加到
/etc/hosts
-
第三步,清空所有代理
# 清空 npm 代理
npm config set proxy null
npm config set https-proxy null
npm config delete proxy
npm config delete https-proxy
# 清空全局代理
unset http_proxy https_proxy
# 驗證
npm config list
env | grep -I proxy
- 第四步,驗證 hexo 是否安裝成功直接輸入
hexo
即可
至此,終於邁過了 WSL 安裝 hexo 的一步