前言
刚开始只是要下载了cnpm的全局依赖
npm install -g cnpm --registry=http://registry.npmmirror.com
,但是报错了。然后开始一系列的尝试,
1 )更改
node_global
和node_cache
文件夹的权限,配置全局环境变量,仍未解决。2)思考是不是node之前配置或版本的问题,索性直接开始nvm的下载安装和全局环境配置,解决所有问题
3)在下载nvm前node一定要卸载干净
报错内容:
npm ERR! errno: -4048
npm ERR! code:'EPERM
npm ERR! syscall: 'rename!
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a text editor or antivirunpmor that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check thenpm ERR ! permissions of the file and its containing directories, or try running
npm ERR ! the command again as root/Administrator.
目录
1. 通过淘宝镜像,重新安装node时,需要把之前的nodejs卸载干净
2.2.1 新建nvm文件夹,nodejs不需要新建,当你nvm use node版本号会自动创建
1. 通过淘宝镜像,重新安装node时,需要把之前的nodejs卸载干净
出现下列问题:
a later version of node.js is already installed. Setup will now exit.
可参照:https://blog.csdn.net/weixin_42950333/article/details/119763330
并把之前配置的相关环境变量和删掉,node和npm的
2. 安装nvm和配置全局依赖
2.1 下载nvm
官网下载: https://github.com/coreybutler/nvm-windows/releases
2.2 安装nvm
2.2.1 新建nvm文件夹,nodejs不需要新建,当你nvm use node版本号会自动创建
2.2.2 环境变量配置
一般安装完成后,环境变量是默认配置好的
注意:path变量中添加%NVM_HOME%和%NVM_SYMLINK%时需要按顺序
2.3 nvm的使用
需要手动的开启,所以必须先 nvm on ,然后进行以下操作
nvm ls // 查看目前已经安装的版本
nvm install 16.18.1 // 安装指定的版本的nodejs
nvm use 16.18.1 // 使用指定版本的nodejs,创建快捷方式
nvm list available //显示可下载版本的部分列表
nvm uninstall 12.22.12 //删除已安装的指定版本
nvm current //显示当前的版本
2.4 配置全局依赖和缓存依赖
1. 新建全局 node_global 和 缓存地址 node_cache 的文件夹
2. 配置地址,且每个版本都需要配置一遍,可通过 PgUp 获取之前执行过的命令。
nvm on
nvm use 16.18.1
npm config set prefix "D:\Home\NVM\node\node_global"
npm config set cache "D:\Home\NVM\node\node_cache"
3. 配置全局依赖的环境变量
- 用户变量Path设置
- 系统变量添加 NODE_PATH 变量,Path添加 %NODE_PATH%;
3. 安装nrm
npm i nrm -g //全局安装nrm
nrm ls //获取nrm镜像列表
/*
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
*/
nrm use taobao //使用淘宝镜像
报错:
D:\Home\NVM\node\node_global\node_modules\nrm\cli.js:9
const open = require('open');
^Error [ERR_REQUIRE_ESM]: require() of ES Module D:\Home\NVM\node\node_global\node_modules\nrm\node_modules\open\index.js from D:\Home\NVM\node\node_global\node_modules\nrm\cli.js not supported.
Instead change the require of index.js in D:\Home\NVM\node\node_global\node_modules\nrm\cli.js to a dynamic import() which is available in all CommonJS modules.
at Object.<anonymous> (D:\Home\NVM\node\node_global\node_modules\nrm\cli.js:9:14) {
code: 'ERR_REQUIRE_ESM'
}
解决方案:应该使用 open 的 CommonJs规范的包
npm install -g nrm open@8.4.2 -save
4. 安装cnpm
npm install -g cnpm
5. 测试全局配置是否成功
结语
最后我的cnpm总算安装成功了,圆满结束。