nrm是什么
nrm(NPM registry manager
)是 npm
的 镜像源 管理工具,使用它可以快速切换 npm 的源。
npm
默认情况下是使用npm
官方源(https://registry.npmjs.org/
),属于国外的网址,国内使用这个源下载东西特别慢,一般我们都会用淘宝的npm源(https://registry.npm.taobao.org
)
-
查看当前npm源:
npm config ls
-
切换npm源:
npm set registry https://registry.npm.taobao.org/
但是注意! 这个源已经到期,不能用了!
目前需要使用最新npm源: https://registry.npmmirror.com
淘宝命令工具 cnpm 使用(不推荐)
npm安装cnpm:npm install -g cnpm --registry=https://registry.npmmirror.comcnpm
查看cnpm是否安装成功: cnpm -v
为什么不推荐使用cnpm?
go
使用 `npm` 作为前端项目包管理工具的话,通常我们前端项目中都会有 `package-lock.json` 文件。
使用 `npm` 和 `cnpm` 来安装依赖包是有区别的,这两个命令对其有一定的影响:
> - `cnpm i`不受 `package-lock.json` 影响,只会根据 `package.json` 进行下载安装。
> - `cnpm i xxx@xxx`不会更新到 `package-lock.json` 中去。
> - `npm i xxx@xxx` 会更新到 `package-lock.json` 中去。
在多人协作维护的项目中,`package-lock.json` 是必不可少的。是为了确保不同开发者安装的包及其依赖保持一致,同时也是降低不同版本 npm 包给项目稳定性带来的影响。尤其是一些不遵循[语义化版本控制](https://www.jianshu.com/p/69a98fd20c83)的第三方 npm 包,就很容易被坑。
nrm安装
全局安装nrm,终端输入: npm install -g nrm
-
安装nrm失败:
如果使用npm安装nrm失败或长时间没反应,注意先查看当前npm源是什么
npm config ls
,我这里安装失败是因为当前npm的源还是旧的https://registry.npm.taobao.org
切换最新npm源:
npm config set registry https://registry.npmmirror.com
查看是否成功:
npm config get registry
-
重新安装nrm安装成功:
nrm使用
-
查看所有源
nrm ls
其中带*号的是当前使用的源,上图表明当前源为 taobao
或者直接使用
nrm current
命令,也可以查看当前源: -
使用源
nrm use taobao
-
添加源
nrm add <registry源名称> <url源地址>
-
删除源
nrm del <registry>
-
测试源响应时间
nrm test <registry>
注意切换源之后 ,我们安装依赖时仍使用 npm i xxx
的方式来进行安装。