被网上复制粘贴的教程搞得脑壳痛。来回操作了半天,作为一个强迫症患者,终于能歇口气了。
网上的教程大都是:

  1. 在nodejs安装目录下新建node_global和node_cache两个文件夹。
  2. 然后,在命令窗口执行以下两条命令
npm config set prefix d:/jstool/npm/pkg
npm config set cache d:/jstool/npm/cache
  1. 最后,修改环境变量。
    这一步是最恶心人的,方案层出不穷,但没人给出个原因。

首先,不否认这些教程的可用性。但是不明不白地就修改环境变量,又在安装目录新建两个文件夹,强迫症患者表示很难受(明明安装目录下就有一个node_modules来存放模块了,npm就放在这)。

下面给出自己的方案:

一、下载与安装

官网地址 反正都是要改环境变量的,为什么不用压缩文件安装呢?

node_modules 位置 设置node_modules路径_node_modules 位置


下载完成后,将压缩包解压到某一个目录。比如:D:\CodingSoftware。解压完以后如下

node_modules 位置 设置node_modules路径_nodejs_02

二、添加环境变量

将node.exe所在目录添加到系统环境变量path中(下图为win10 20H2版本)

node_modules 位置 设置node_modules路径_node_modules 位置_03


三、验证是否安装成功

在cmd窗口输入node -v 和 npm -v 查看版本,能查看到版本号则安装成功

node_modules 位置 设置node_modules路径_node_modules 位置_04


四、查看全局模块默认安装路径

在cmd窗口中使用以下命令查看默认安装路径

npm config get prefix
npm root -g

node_modules 位置 设置node_modules路径_nodejs_05


node新版本的全局模块默认安装路径已经修改了,

不再是网上教程写的 C:\Users\用户名\AppData\Roaming\npm 这个路径了。

五、缓存位置

查看缓存位置

npm config get cache

node_modules 位置 设置node_modules路径_缓存_06


发现缓存位置确实是还在C盘。所以需要将缓存位置修改。我修改成 和 模块全局安装目录同一层目录,也就是D:\CodingSoftware\node-v14.16.0-win-x64\node_cache。

最好先在node-v14.16.0-win-x64下新建文件夹node_cache,再执行命令,以免修改失败

npm config set cache "自定义的目录"

node_modules 位置 设置node_modules路径_环境变量_07


此时,在C盘的用户目录了会多了一个文件.npmrc。

node_modules 位置 设置node_modules路径_环境变量_08

查看可发现是我们修改缓存的位置

node_modules 位置 设置node_modules路径_node_modules 位置_09


重新打开一个cmd命令窗口,执行查看缓存位置命令,可以发现位置已成功修改

node_modules 位置 设置node_modules路径_缓存_10


六、关于设置环境变量NODE_PATH

因为我们根本没修改模块的全局安装路径,所以根本无需修改/添加环境变量NODE_PATH。

这就是网上很多教程坑的地方。

七、修改镜像源
测试全局安装之前,先修改镜像源

npm config set registry https://registry.npm.taobao.org/

node_modules 位置 设置node_modules路径_环境变量_11


修改完成后,同样可在c盘下的.npmrc文件中查看

node_modules 位置 设置node_modules路径_缓存_12


或者使用命令npm config ls查看用户修改配置

node_modules 位置 设置node_modules路径_缓存_13


八、测试全局安装

实践是检验真理的唯一标准。

测试安装cnpm模块

npm install cnpm -g

node_modules 位置 设置node_modules路径_环境变量_14


cnpm 模块已经成功安装到 D:\CodingSoftware\node-v14.16.0-win-x64\node_modules 目录下,而C盘没有添加其他文件。

node_modules 位置 设置node_modules路径_nodejs_15


node_modules 位置 设置node_modules路径_缓存_16