• WSL2 安装 npm 踩坑记录(各种 errno ECONNREFUSED、errno ETIMEDOUT 问题)


    事情起因

    • 搭建 blog 需要,我是走 hexo + github 路线
    • 安装 hexo 要先安装 nodejs 和 npm,结果卡在安装 npm 不断踩坑

    坑点一:官方路线

    • nodejs 官网

    • WSL 见最底行

    • 紧接着会跳转微软官网,微软推荐用 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就如老朋友一样亲切
    error ETIMEDOUT

    error ECONNREFUSED

    看提示我以为是代理的问题
    err! proxy

    PART II: 处理代理(其实是个坑点,不用处理,我只是记录下来)

    先给大家介绍下背景

    • 第一,dns 设置(控制面板->网络和共享中心->更改适配器设置(左栏)->当前网卡右击属性->双击 ipv4)
      ipv4 dns

    • 第二,本地代理的设置(右击开始->设置->网络和 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 的一步

  • 相关阅读:
    DataGrid( 数据表格) 组件[2]
    DataGrid( 数据表格) 组件[1]
    Form( 表单) 组件
    Slider( 滑动条) 组件
    内存管理-常见内存泄露-(5)
    Android 内存管理分析(四)
    Android 之 内存管理-查看内存泄露(三)
    Android 内存管理(二)
    正确认识Android的内存管理机制,合理关闭进程 (一)
    谈谈Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
  • 原文地址:https://www.cnblogs.com/bEngi1/p/15906351.html
Copyright © 2020-2023  润新知