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介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
 
                     
     
        
       
        
       
        
       
    
发表评论
还没有评论,快来抢沙发吧!