我只安装了一次http-server,但是无论如何切换node版本,都是可以用的,但是在mac上用的时候,我按照默认版本全局安装以后,使用其他版本都是无法使用的。
在这里插入图片描述

原因:npm 默认的 node_cachenode_global 文件夹是建立在 C:\Program Files\nodejs 目录下的,所以当你使用 npm install -g http-server 这样全局安装的时候,会自动安装到 C:\Program Files\nodejs\node_global 目录下面,而没有安装到nvm目录下面的node对应的版本里面,所以全局安装的模块,不会随着node版本的切换而改变。
在这里插入图片描述
npm 全局安装路径查看 npm config ls
在这里插入图片描述

解决思路:切换node版本的时候,更改npm的 node_cachenode_global 的路径

解决方法:
方法一:
直接正常安装,然后把 C:\Program Files\nodejs\node_global 目录下对应的文件拷贝到 nvm 目录,对应版本的node文件夹下,例如我这里是 D:\ProgramFiles\nvm\v12.12.0 。接着把对应的node_modules下的文件夹直接拷贝过去,然后删除 C:\Program Files\nodejs\node_global 目录下刚才拷贝过去的文件
原全局安装文件夹:
在这里插入图片描述
在这里插入图片描述
nvm的node对应版本文件夹:
在这里插入图片描述
在这里插入图片描述

方法二:
在切换node版本的时候,更换npm的全局安装目录

npm config set cache "D:\ProgramFiles\nvm\v版本号"
# 例如:npm config set prefix "D:\ProgramFiles\nvm\v12.12.0"
npm config set prefix "D:\ProgramFiles\nvm\v版本\node_cache"
# 例如:npm config set cache "D:\ProgramFiles\nvm\v12.12.0\node_cache"

然后再进行 npm install -g http-server 全局安装

切换版本:
在这里插入图片描述
安装全局模块:
在这里插入图片描述
使用测试:
在这里插入图片描述
以上方法,全局安装的模块就可以跟随 node 版本的改变而改变了。

如果模块可以兼容你所需要的node版本,那么直接安装就可以不用修改npm全局安装路径,如果模块有node版本区分的话,就是用如上方法安装

卸载和安装全局的模块的时候,都要记得加 -g ,否则会出错的。
还原npm安装原始目录的代码:

npm config set prefix "C:\Program Files\nodejs\node_global"
npm config set cache "C:\Program Files\nodejs\node_cache"

在这里插入图片描述

创作不易,且看且珍惜,转载请说明~!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐