文章目录
npm 默认全局、缓存路径及国内镜像地址修改
Windows 10 下安装 node v12.16.3 (npm v6.14.4)
后,使用以下命令可以查看 npm 的配置信息(默认的全局及缓存位置、数据源等)
npm config ls
## 更多npm命令可以自行尝试
# npm <command> -h 查看对应命令的帮助
# npm -l 查看所有指令
# npm help 查看帮助
# npm help npm 打开npm本地帮助文件
默认全局及缓存位置如下:
C:\Users\[用户名]\AppData\Roaming\npm # 通过命令 npm config get prefix 获取
C:\Users\[用户名]\AppData\Roaming\npm_cache # 通过命令 npm config get cache 获取
默认registry地址如下:
https://registry.npmjs.org/ # 通过命令 npm config get cache 获取
修改全局、缓存地址
命令修改
npm config set prefix "新制定的全局路径,如:D:\tools\node\npm_global"
npm config set cache "新制定的缓存路径,如:D:\tools\node\npm_cache"
# 使用 npm config ls 命令查看是否修改成功
.npmrc 配置文件修改
使用文本编辑器(如:Visual Studio Code、Sublime Text、Nodepad++等,不推荐使用记事本打开)打开 C:\Users\[用户名]\.npmrc
用户配置文件(不存在则自行创建),添加以下内容:
prefix=D:\tools\node\npm_global
cache=D:\tools\node\npm_cache
保存退出即可生效。
验证
配置完成后可以通过 npm 全局安装命令,验证是否修改成功,如:npm install -g nrm
命令安装 nrm
安装完成后,可以在新配置的全局路径内看到新安装的内容,但此时在命令行执行 nrm -v
命令时,会出现 “ ‘nrm’ 不是内部或外部命令,也不是可运行的程序或批处理文件。” 错误提示。
此处因修改了全局安装路径,则需要修改环境变量
- 环境变量中新建变量 NODE_PATH , 变量值为 D:\tools\node\npm_global
- path变量中新增条目 %NODE_PATH%
设置完成后,重启命令行窗口,即可成功执行上面命令。
修改 npm 镜像源
命令修改
# 全局使用时设置
npm config set registry http://registry.npm.taobao.org/ #淘宝镜像源
# 临时使用时设置
# npm i [包名] --registry=https://registry.npm.taobao.org
# 切回原镜像 npm config set registry https://registry.npmjs.org
.npmrc 配置文件修改
.npmrc 用户配置文件,添加以下内容:
registry=http://registry.npm.taobao.org/
## 使用以下命令查看是否修改成功
# npm config get registry
保存退出即可生效。
多镜像地址管理工具 nrm
nrm (全称:NPM registry manager), 用于管理多个镜像源地址,通过命令进行切换(简化 npm config set registry xxx
命令)。
nrm内置一下镜像源:
源 | URL | 主页 |
---|---|---|
npm | https://registry.npmjs.org/ | https://www.npmjs.com/ |
cnpm | http://r.cnpmjs.org/ | https://cnpmjs.org/ |
taobao | https://registry.npm.taobao.org/ | https://npm.taobao.org/ |
npmMirror | https://skimdb.npmjs.com/regi… | https://skimdb.npmjs.com/ |
nj (Fetch Error) | https://registry.nodejitsu.com/ | https://www.nodejitsu.com/ |
rednpm | http://registry.mirror.cqupt… | http://npm.mirror.cqupt.edu.cn/ |
edunpm(Fetch Error) | http://registry.enpmjs.org/ | http://www.enpmjs.org/ |