建立自己的 npm 体系(1)

492 阅读3分钟

npm的版本管理和镜像源管理

随着时间的变化,技术在不断更新,项目会迭代发展,那么面对着新老项目,我们需要不同的 node 环境,难度每次版本不同就重新安装一次 node 环境?

我们可以使用 nvm 来进行不同环境的管理。

在安装 nvm 之前,假如系统已经安装过 node,先卸载掉原有的 node,执行nvm install stable 来安装当前稳定版本

brew install nvm

windows 下是没有 nvm 的,可以使用 nvm-windows

安装完毕后,我们来看下效果:

image-20200617154237003

假如我们项目现在需要的是 6.**版本的 node 环境,那么在该项目下执行下面的命令,即可切换到相对应的 node 版本

nvm install lts/boron  # 没安装过的需要先执行该命令
nvm use v6 						 # 切换到v6版本

效果如图

image-20200617154348255

nvm 实现了 node 不同版本的管理,但是 npm 的镜像源在国外,鉴于某种原因,你可能碰到过在安装某个依赖包的时候失败。这不是问题,国内的互联网领军企业已经解决了这个问题。例如,我们可以执行下面命令来把当前环境的镜像源永久指定使用淘宝源(当然,你也可以使用 cnpm)解决安装失败的网络问题。

npm  config set registry https://registry.npm.taobao.org

淘宝源10 分钟同步一次官方源的内容

上面的方法看起来没什么问题,但是难道每次切换源的时候我都需要拼写一次源的 url 吗,这似乎有些不够优雅。那么优雅的方法是什么呢?答案是使用nrm管理不同的镜像源。

再次说明,上面的 nvm 的安装之前,假如本机已经安装了 node 版本,请确定一定要删除了再安装!

在使用 nvm 管理 node 版本的基础上,npm 全局安装的 nrm 会跟随着当前版本的 node,当 node 环境切换的时候,之前全局安装的包就不存在了。

node -v              # 查看当前node版本
npm install -g nrm   # 当前版本下全局安装nrm
npm ls -g --depth=0  # 列出当前全局安装的包
nrm ls 	             # 证明nrm安装,并且生效了
nvm use v8           # 这时候切换v8版本的node环境
nrm ls	             # 这时候v8版本没安装过nrm的话就会报 commond not found 这个错误,我因为v8也安装过了所以没出现错误,转到v6的时候能看到效果

我们看下效果:

image-20200617145010806

另外 nrm 运行下面命令还能测试不同源的速度,效果如下

nrm test

image-20200617152749510

可以看到上图有两个源链接超时,那么我们可以尝试着用del删除掉它俩,但是很遗憾

nrm del 命令不能删除 nrm 自己内置的源

我们也可以添加自己的私有源,看下效果

nrm add myself https://myselftest.org

image-20200617153910239

不过上面是我们测试的,所以我们还是删掉它吧,执行下面命令删除,这次没有删不掉的问题

nrm del myself

image-20200617154048759

至此,我们使用 nvm 管理 node 的版本,nrm 管理 npm 的镜像源。

参考文章:

npm 源管理器 nrm 使用教程