推荐一下前端开发时npm源管理工具

2022-01-17 13:52:06 浏览数 (1)

我们在开发时,有时需要进行npm源的切换。nrm和yrm作为npm / yarn的镜像源管理工具,可以快速地在 npm 源间切换,提高我们的效率。

一、nrm

nrm的安装

代码语言:javascript复制
npm install -g nrm
复制

查看可用源

代码语言:javascript复制
nrm ls
//带*号的是当前使用源
 npm -------- https://registry.npmjs.org/
 yarn ------- https://registry.yarnpkg.com/
 cnpm ------- http://r.cnpmjs.org/
* taobao ----- https://registry.npm.taobao.org/
复制

选择其中一个源

代码语言:javascript复制
nrm use 名字
复制

新增、删除一个源

代码语言:javascript复制
//新增
nrm add 名称 路径
//删除
nrm del 名称
复制

测试速度

代码语言:javascript复制
nrm test 名称
复制

二、yrm

yrm的安装

代码语言:javascript复制
npm install -g yrm
复制

查看可用源

代码语言:javascript复制
yrm ls
//带*号的是当前使用源
 npm -------- https://registry.npmjs.org/
 yarn ------- https://registry.yarnpkg.com/
 cnpm ------- http://r.cnpmjs.org/
* taobao ----- https://registry.npm.taobao.org/
复制

选择其中一个源

代码语言:javascript复制
yrm use 名字
复制

新增、删除一个源

代码语言:javascript复制
//新增
yrm add 名称 路径
//删除
yrm del 名称
复制

测试速度

代码语言:javascript复制
yrm test 名称
复制

最后说一个我在安装nrm时候报的一个错

代码语言:javascript复制
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:375:7)
  at Object.<anonymous> (C:UsershonvinAppDataRoamingnpmnode_modulesnrmcli.js:17:20)
  at Module._compile (internal/modules/cjs/loader.js:1063:30)
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
  at Module.load (internal/modules/cjs/loader.js:928:32)
  at Function.Module._load (internal/modules/cjs/loader.js:769: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'
}
复制

解决方法: 找到nrm所在目录,一般是c盘用户文件夹下:C:Users用户名AppDataRoamingnpmnode_modulesnrm

打开cli.js

找到这行代码

代码语言:javascript复制
const NRMRC = path.join(process.env.HOME, '.nrmrc');
复制

替换成

代码语言:javascript复制
const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');
复制

就可以正常使用了,有用的话记得留言评论!

0 人点赞