NRM 使用笔记
1. 为什么使用 nrm
为了方便切换不同npm镜像源。
比如有个项目是基于npm
官方镜像的,另一个项目基于cnpm
;
这样不同项目更新依赖需要通过npm config set registry <path>
来切换比较麻烦。
2. 安装使用
# 全局安装
npm install -g nrm
# 新增公司的仓库地址
nrm add myCompany https://work.company.com/repository/npm/
Windows 下使用会报错:
# 尝试新增一个镜像地址
nrm add myCompany https://work.company.com/repository/npm/
# 抛出如下错误
internal/validators.js:124
throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
^
[TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
at validateString (internal/validators.js:124:11)
at Object.join (path.js:402:7)
# 直接定位这个文件修改源码
at Object.<anonymous> (C:\Users\10306\AppData\Roaming\nvm\v14.17.0\node_modules\nrm\cli.js:17:20)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
] {
code: 'ERR_INVALID_ARG_TYPE'
}
定位到C:\XXX\XXX\AppData\Roaming\nvm\v14.17.0\node_modules\nrm\cli.js:17:20
,修改源码:
// const NRMRC = path.join(process.env.HOME, '.nrmrc');
const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');
保存以后就可以正常使用 nrm 功能:
# 1. 新增一个镜像
nrm add myCompany https://work.company.com/repository/npm/
# 输出以下内容表示添加成功
add registry myCompany success
# 2. 查看所有镜像
nrm ls
# 输出以下内容可以看到所有地址 标注*的表示当前环境使用
npm -------- https://registry.npmjs.org/
yarn ------- https://registry.yarnpkg.com/
cnpm ------- http://r.cnpmjs.org/
* taobao ----- https://registry.npm.taobao.org/
nj --------- https://registry.nodejitsu.com/
npmMirror -- https://skimdb.npmjs.com/registry/
edunpm ----- http://registry.enpmjs.org/
myCompany ------ https://work.company.com/repository/npm/
# 3. 切换镜像
nrm use myCompany
# 输出以下表示切换成功哦
Registry has been set to: https://work.company.com/repository/npm/
切换完成后就可以在项目中执行npm i
来安装私服的依赖包了。
将来想要使用 npm 官方镜像的库创建项目,只需在创建前执行nrm use npm
即可。
The End. Posted by Jimmy Gu, 8/16.
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!