问题一:NRM 报错

错误信息:

internal/validators.js:124
    throw new ERR_INVALID_ARG_TYPE(name, 'string', value);

windows 安装了 node 之后,需要通过 nrm 管理 registry,因此全局安装了 nrm

执行 nrm 报错如下:

78452-ew181dt4wfk.png

这个是 nrm 的实现有点问题,找到报错的代码:

具体可以在 C 盘 -> 用户,找到自己的用户名,然后继续找 AppData\Roaming\npm\node_modules\nrm\cli.js

(C:\Users\k\AppData\Roaming\npm\node_modules\nrm\cli.js:17:20)

找到后,通过 vscode 打开修改 cli.js, 改动如下:

// const NRMRC = path.join(process.env.HOME, '.nrmrc');
const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');

保存后即可使用。

相关信息如下:

问题二:WSL + ubuntu 无法全局安装 npm i -g

如果你使用 windows terminal 并且安装了 ubuntu 子系统,并且使用 zsh 或者 bash 这样的 linux 下的脚本终端,你会发现,无法执行 npm i -g

主要错误表现是一个 rename error, permission denied

WSL2 修复了这个问题,如果可以使用 WSL 2 , 可以选择升级到 WSL2,升级需要开启 CPU 虚拟化,具体步骤参考:

如果仍旧使用 WSL1,则该问题无解(主要是 /mnt/ 权限和 ~ 权限),我的做法是在 windows powershell 中安装全局 npm,但是在 ubuntu 子系统中去使用这些全局的 npm cli

问题三:create-react-app 卡住不动,没有任何输出

如果你执行 create-react-app 的时候没有任何的 console 信息,并且会卡住,没有任何反应。

可以尝试将 nodejs 安装到 非 C 盘目录,经过各种尝试,将 nodejs 安装到非 C 盘目录后,问题得到解决。

文章已经结束啦