搞了一个项目,想学学看,但是吧,他这个nodejs版本太低了,我电脑中最开值就是直接安装了一个版本的nodejs 16.20.2,报了错,另外还缺少python2的环境,这个好搞,暂且不说
查了很多资料了解到是本地的node版本太高了,和新项目里面的node-sass不兼容。
解决方案大体上有三种:
nvm 是 node version manager(node 版本管理工具)的缩写,是一个命令行工具,用于管理和切换到不同版本的 node.js。
这一部参考了以下大佬的内容
1、「图文教程」windows系统使用nvm实现多版本node切换 (baidu.com)
2、使用nvm管理(切换)node版本_nvm切换node版本命令_Sunshinedada的博客-CSDN博客
3、nvm安装切换node版本 - 知乎 (zhihu.com)(主要参考这个)
4、nvm进行不同node版本间切换的详细步骤 - 简书 (jianshu.com)
当我安装低版本的nodejs (12.14.1) 时,又不好使了,他没有npm,不能自动安装
这部分参考了以下大佬的内容
1、nvm安装node没有npm的问题 - 简书 (jianshu.com)(主要参考这个)
2、nvm安装node时,npm安装失败的原因分析_nvm下载node报错_前端小白学习中…的博客-CSDN博客
3、NVM安装node版本时nvm install XXXX(版本号)报错_Liang彤彤的博客-CSDN博客
最后反正我是手动下载的npm,自动的配置都不好使,不管是按顺序下载,还是配置镜像源,自动的在低版本上都不好使
我觉得纯纯是个网络问题!!!我之后安装node-sass时再尝试就好使了!!!就是网(xuan)络(xue)问题,也没有什么其他的设置,一遍过,node和npm都直接下载
之后可能是因为手动安装的npm,所以项目中的node-sass下载不了?不知道为啥,版本就是会冲突,怎么都解决不了,然后就想着安装cnpm,但是按照网上的好多方法,都不可行,
npm ERR! code EPERM
npm ERR! syscall rename
npm ERR! path D:\nvm\v12.14.1\node_modules\cnpm\node_modules\npm\node_modules\.node-gyp.DELETE\node_modules\@npmcli
npm ERR! dest D:\nvm\v12.14.1\node_modules\cnpm\node_modules\npm\node_modules\node-gyp\node_modules\@npmcli
npm ERR! errno -4048
npm ERR! Error: EPERM: operation not permitted, rename 'D:\nvm\v12.14.1\node_modules\cnpm\node_modules\npm\node_modules\.node-gyp.DELETE\node_modules\@npmcli' -> 'D:\nvm\v12.14.1\node_modules\cnpm\node_modules\npm\node_modules\node-gyp\node_modules\@npmcli'
npm ERR! [OperationalError: EPERM: operation not permitted, rename 'D:\nvm\v12.14.1\node_modules\cnpm\node_modules\npm\node_modules\.node-gyp.DELETE\node_modules\@npmcli' -> 'D:\nvm\v12.14.1\node_modules\cnpm\node_modules\npm\node_modules\node-gyp\node_modules\@npmcli'] {
npm ERR! cause: [Error: EPERM: operation not permitted, rename 'D:\nvm\v12.14.1\node_modules\cnpm\node_modules\npm\node_modules\.node-gyp.DELETE\node_modules\@npmcli' -> 'D:\nvm\v12.14.1\node_modules\cnpm\node_modules\npm\node_modules\node-gyp\node_modules\@npmcli'] {
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'rename',
npm ERR! path: 'D:\\nvm\\v12.14.1\\node_modules\\cnpm\\node_modules\\npm\\node_modules\\.node-gyp.DELETE\\node_modules\\@npmcli',
npm ERR! dest: 'D:\\nvm\\v12.14.1\\node_modules\\cnpm\\node_modules\\npm\\node_modules\\node-gyp\\node_modules\\@npmcli'
npm ERR! },
npm ERR! stack: "Error: EPERM: operation not permitted, rename 'D:\\nvm\\v12.14.1\\node_modules\\cnpm\\node_modules\\npm\\node_modules\\.node-gyp.DELETE\\node_modules\\@npmcli' -> 'D:\\nvm\\v12.14.1\\node_modules\\cnpm\\node_modules\\npm\\node_modules\\node-gyp\\node_modules\\@npmcli'",
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'rename',
npm ERR! path: 'D:\\nvm\\v12.14.1\\node_modules\\cnpm\\node_modules\\npm\\node_modules\\.node-gyp.DELETE\\node_modules\\@npmcli',
npm ERR! dest: 'D:\\nvm\\v12.14.1\\node_modules\\cnpm\\node_modules\\npm\\node_modules\\node-gyp\\node_modules\\@npmcli',
npm ERR! parent: 'npm'
npm ERR! }
npm ERR!
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 antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\liuminghai\AppData\Roaming\npm-cache\_logs\2023-05-07T12_41_59_433Z-debug.log
我解决不了,然后我就在nvm中写卸载了12.14.1,再重新安装,结果npm也可以了,就像在2中说的,很顺畅
但是吧,cnpm还是有那个问题,我不到为什么,我觉得网上的方法我都试了,解决不了啊,我放弃了
npm升级报错,没有权限.ERRERR!The operation was rejected by your operating system. npm ERR!Error: EPERM: operation not permitted, rename - Easy999000 - 博客园 (cnblogs.com)
在npm install 的时候遇到了下面的问题
我试过了:
npm ERR! code EPERM
npm ERR! syscall unlink
npm ERR! path D:\@project@\music-website-player\music-client\node_modules\.staging\caniuse-db-0f253d3b\features-json\input-number.json
npm ERR! errno -4048
npm ERR! Error: EPERM: operation not permitted, unlink 'D:\@project@\music-website-player\music-client\node_modules\.staging\caniuse-db-0f253d3b\features-json\input-number.json'
npm ERR! [OperationalError: EPERM: operation not permitted, unlink 'D:\@project@\music-website-player\music-client\node_modules\.staging\caniuse-db-0f253d3b\features-json\input-number.json'] {
npm ERR! cause: [Error: EPERM: operation not permitted, unlink 'D:\@project@\music-website-player\music-client\node_modules\.staging\caniuse-db-0f253d3b\features-json\input-number.json'] {
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'unlink',
npm ERR! path: 'D:\\@project@\\music-website-player\\music-client\\node_modules\\.staging\\caniuse-db-0f253d3b\\features-json\\input-number.json'
npm ERR! },
npm ERR! stack: "Error: EPERM: operation not permitted, unlink 'D:\\@project@\\music-website-player\\music-client\\node_modules\\.staging\\caniuse-db-0f253d3b\\features-json\\input-number.json'",
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'unlink',
npm ERR! path: 'D:\\@project@\\music-website-player\\music-client\\node_modules\\.staging\\caniuse-db-0f253d3b\\features-json\\input-number.json',
npm ERR! parent: 'music-client'
npm ERR! }
npm ERR!
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 antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\liuminghai\AppData\Roaming\npm-cache\_logs\2023-05-07T12_23_43_415Z-debug.log
这个错误,就是没关掉vscode导致的
执行 npm install 时 npm ERR 代码 EPERM syscall unlink答案 - 爱码网 (likecs.com) (主要参考这个)
npm ERR! code EPERM npm ERR! syscall unlink npm ERR! ERRNO -4048_一晌贪欢i的博客-CSDN博客
nvm -v // 查看nvm版本
node -v //查看node版本
npm -v // 查看npm版本
cnpm -v // 查看cnpm 版本
nvm install xxxxx // 安装xxxxx版本的node
nvm uninstall xxxxxx // 卸载xxxxx版本的node
nvm ls // 查看已安装的node列表
nvm use xxxxx // 切换到xxxxx版本环境下
npm install // 在项目中下载node_modules
// 指定全局下载位置和缓存位置
npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"
// 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install --save-dev node-sass
记得node全局安装的时候,他会安装在D:\nodejs\node_global
这个里面,不会生效,要把它拿出来,举例:
在我安装
yarn
的时候,使用了npm install -g yarn
这个命令,显示安装成功,但是使用yarn --version
验证的时候,会提示'yarn' 不是内部或外部命令,也不是可运行的程序或批处理文件。
来到node安装的虚拟文件夹 ``D:\nodejs
可以发现,当前目录下并没有
yarn的
.cmd文件,他在
D:\nodejs\node_global里面,要把
D:\nodejs\node_global里面除了
D:\nodejs\node_global\node_modules的文件全部拿出来,放到
D:\nodejs`中还要把
D:\nodejs\node_global\node_modules
中的文件全部拿出来,放到D:\nodejs\node_modules
中,这样才会好使
这里大家对比一下自己的安装位置就能看出来了,意思就是在执行全局安装的时候,他不会安装在一个运行环境(?可以这么说吗,不是很确定啊),而是有一个虚拟的\node_global
,只要把这里面的东西拿出来就好了,复制粘贴出来就行