nvm和nodejs、npm安装的一些问题

0、起因

搞了一个项目,想学学看,但是吧,他这个nodejs版本太低了,我电脑中最开值就是直接安装了一个版本的nodejs 16.20.2,报了错,另外还缺少python2的环境,这个好搞,暂且不说

1、安装nvm

查了很多资料了解到是本地的node版本太高了,和新项目里面的node-sass不兼容。

解决方案大体上有三种:

  • 1.降级node版本,但是有多个项目时,切换起来会很麻烦,总不能每换一个项目都写在重新安装一遍吧
  • 2.升级新项目的node-sass,改动会很大,本来就是学习一下,不至于这样
  • 3.利用工具切换node,这里就找到了nvm

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)

2、问题

当我安装低版本的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都直接下载

3、cnpm安装

之后可能是因为手动安装的npm,所以项目中的node-sass下载不了?不知道为啥,版本就是会冲突,怎么都解决不了,然后就想着安装cnpm,但是按照网上的好多方法,都不可行,

  • 改权限
  • 删除.npmrc
  • 清除缓存npm cache clean --force
  • 更新npm
    以上都不行,都会报下面这个错
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)

4、node-sass安装

在npm install 的时候遇到了下面的问题
我试过了:

  • npm cache clean --force
  • 删除 node_modules 并重新安装
  • 已禁用防病毒软件
  • 正在重启笔记本电脑:)
  • 以及上面的cnpm安装
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导致的

  • 关闭所有打开的提示和编辑器,例如。 VSCode。
  • 以管理员身份打开终端或 CMD 并再次运行 npm-install。
    大佬认为 IDE 正在“锁定文件" ,大佬是对的,我关掉vscode之后就好使了

执行 npm install 时 npm ERR 代码 EPERM syscall unlink答案 - 爱码网 (likecs.com) (主要参考这个)
npm ERR! code EPERM npm ERR! syscall unlink npm ERR! ERRNO -4048_一晌贪欢i的博客-CSDN博客

5、列一下常用命令

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

6、后后后记

记得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,只要把这里面的东西拿出来就好了,复制粘贴出来就行

你可能感兴趣的:(项目开发,npm,前端,node.js)