NodeJs更改安装目录后下载pnpm仍然在老目录的问题解决办法
检查之前下载的nodejs,已经删除干净了,新的nodejs也下好了,但是运行npm install -g pnpm就是会下载到原来的nodejs的目录下
一、为什么会出现这个问题?
答案很简单,你在上个nodejs的配置文件——.npmrc文件,里面配置了nodejs的目录,prefix = 安装时指定的目录。所以在下载nodejs的时候会出现这个问题
二、如何解决?
先说一个比较简单的方法
在cmd中运行
npm config set prefix <path>
<path>替换为你新下载的nodejs目录即可
但是这个方法并不能一劳永逸的解决这个问题,最好的解决办法是什么呢??
三、更好的解决办法——使用nvm管理NodeJs的版本
nvm是一个专门用来管理nodejs版本的工具,使用之后的效果是,你的电脑上可以存在多个版本的nodejs,并且都是独立运行不会相互影响,而且配置好之后不会出现你使用这个版本的nodejs下载安装pnpm类似的东西,而安装到别的目录
当然,首先你要把你电脑中的所有nodejs卸载干净
- 控制面板 → 程序和功能 → 卸载 Node.js。
- 删除残留目录:
C:\Program Files\nodejsC:\Users\你的用户名\AppData\Roaming\npmC:\Users\你的用户名\AppData\Roaming\npm-cache
1.第一步:下载并安装mvn
Releases · coreybutler/nvm-windows这个网站是github上的,下载可能有点慢,自己想办法下一下吧
在这个网址,下载nvm-setup.exe文件即可,然后双击运行
过程中会设置两个路径,第一个路径是你存放nvm的路径,第二个路径则是Node.js symlink的路径(会自动创建符号链接),第三个输入框是让你输入邮箱,跳过即可
安装完成之后,打开cmd或者powershell 输入
nvm version
显示版本号,则说明安装成功。
2.使用nvm安装Node.js
1.查看可用的 Node.js 版本(也可以不查看直接安装想要的版本,这里只是为了看自己想要的版本是否还能下载):会列出所有可安装的版本,LTS 版本(长期支持版)建议优先安装。
nvm list available #或 nvm ls-remote # 列出远程所有可用版本(可能较多,可按 Ctrl+C 中断) #或者 只查看 LTS 长期支持版 nvm ls-remote --lts
2.安装指定的Nodejs版本:(这里只是举例)
nvm install 18.17.0 # 安装 18.17.0 版本(LTS) # 或安装最新 LTS 版本 nvm install lts
会自动下载,解压,安装,无需自行配置环境变量(Path)
3.安装完成之后,可以查看已安装的版本:
nvm list # 或 nvm ls
输出示例:
* 18.17.0 (Currently using 64-bit executable)
16.20.24.接着就可以切换Node.js版本了:
nvm use 18.17.0
切换后,验证版本:
node -v # 显示 v18.17.0 npm -v # 显示对应的 npm 版本(如 9.6.7)
5.设置默认版本:(第一次下载会默认执行,执行之后,每次打开终端会默认切换到这个nodejs)
nvm alias default 18.17.0
3.此时,可能问题还是没有解决
安装完成之后,下载pnpm,你可能还是会发现你下载的pnpm没有存放在当前使用的nodejs的目录里,别急
这一次,我们要在c盘里找到这个文件并对其中的内容进行修改:
1.修改配置文件:
在C:\Users\你的用户名\.npmrc中找到这个文件,
打开.npmrc文件,使用记事本编辑,你会发现有一行代码是:
prefix=...
删除这一行代码,保存并关闭
2.接着打开一个终端:
1)先检查一下node.js的版本号
npm config get prefix
现在,这个命令的输出应该是 nvm 管理的当前版本的目录路径,比如D:\develop\nvm\v18.17.0
2)重新安装pnpm
# 可选:先卸载可能安装在错误位置的 pnpm npm uninstall -g pnpm # 重新安装 npm install -g pnpm
这时你就会发现,你可以正常下载并安装使用多个版本的nodejs了
总结
到此这篇关于NodeJs更改安装目录后下载pnpm仍然在老目录问题解决办法的文章就介绍到这了,更多相关NodeJs更改安装目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Nest.js Controller路由和请求处理强大功能解析
这篇文章主要为大家,介绍了Nest.js Controller路由和请求处理强大功能解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-12-12
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
这篇文章主要介绍了Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用,本文通过实例代码文字说明给大家讲解的非常详细,需要的朋友参考下2019-11-11


最新评论