欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用 nrm 和 nvm 管理 npm 源和节点版本

最编程 2024-03-14 09:16:00
...

目录

  • 使用nrm管理你的npm-registry
  • 使用nvm管理你的node版本
  • 发布个人专属的npm包
    • 发布
    • 更新

使用nrm管理你的npm-registry

npm源在国外,对于国内的开发人员来说,下载包的速度经常很慢,而且npm还经常挂。

可能在之前我们会通过如下做法将源指向淘宝源,然后使用cnpm操作,也可以使用的很愉快。

npm install -g cnpm --registry=https://registry.npm.taobao.org

我们也可以通过工具nrm去切换npm源,它提供如下多个源供我们选择,更推荐选择淘宝源。

下面来简单说下安装和常用命令

  • 全局安装 npm install -g nrm
  • 测试下各个源的速度 nrm test

可看出taobao是最快的

  • 查看当前正在使用的源 nrm current
  • 使用某个源 # 切换到淘宝源 nrm use taobao
  • 然后在对应项目正常使用npm即可 $yourRepo npm install
  • 查看更多指令的使用帮助 nrm help

比较有意思的说法是nrm要取代npm???可是nrm的安装在macwindows下是依靠npm的。噗:)

使用nvm管理你的node版本

cnpm源进行管理可以让我们平时安装包时更快。同样的我们平时也可能会有切换node版本的场景。这个时候可以使用nvm对其进行管理。

可能有时在使用一些基于Node低版本封装的框架时我需要v0.10.32,但大多数时候都会使用较新版Node,此时也希望做一下版本管理。

  • 全局安装
npm install -g nvm
  • 查看nvm版本
nvm -v
  • 下载最新的 node 版本
nvm install latest
  • 查看远程已经存在的版本
# 可能会很慢,请耐心等待
nvm ls-remote
  • 下载指定版本nodejs
nvm install v8.6.0
# 默认是64位,32位需指定
nvm install v8.6.0 32
  • 当前使用版本
nvm current
  • 使用指定版本
nvm use v8.6.0
  • 查看已经安装的nodejs版本
nvm list
# or
nvm ls
  • 查看nodejs版本
node -v

发布个人专属的npm包

对于jser来说,每天都会和大量的npm包打交道,那怎么编写个人专属的包并发布到npm官网上呢?

可前往一个JS第三方库的五脏六腑查看细节,提供了JS第三方库脚手架的项目,可以拿来即用。这里只做发布npm的讲解。

发布

当你已经完成一个npm包的开发后,我们需要一个npm账号,可前往npm官网注册。

然后登陆账号

npm login

如果输入账号密码登录报以下错误

那说明你现在的npm源不是官网,如果使用上面说到的使用nrm管理你的npm-registry,我们需要先切换npm源

# 切换
nrm use npm
# 查看确保当前源为npm
nrm current

如下登录成功后

进行发布

npm publish

当然也可以撤销一个自己的npm包

# --force参数意为强制
npm unpulish --force

更新

package.json文件的version字段管理包的版本。

  • a中的数字表示大版本号。一般在项目重构后更新时去递增。
  • b中的数字表示小版本号。一般是新增API后更新时去递增。
  • c中的数字表示小版本号中打补丁。一般是修复当前版本的bug后去递增。

递增管理版本号,我们不可能傻到每次更新都手动修改这个字段。

可以通过npm version xxx进行自动递增。

如上我们可以通过三个箭头指向的单词进行版本更新

# 更新大版本 v1.0.0 -> v2.0.0
npm version major
# 更新小版本 v2.0.0 -> v2.1.0
npm version minor
# 打补丁 v2.1.0 -> v2.1.1
npm version patch

然后再发布

npm publish

另外提一下package.json中版本号的前缀~^的区别。

  "@careteen/type": "~0.1.2",
  "@careteen/match": "^0.2.0",
  • 波浪符号~:自动更新当前minor的最新版本。即会更新到0.1.x最新版本。
  • 插入符号^:自动更新当前major的最新版本。即会更新到0.x.x最新版本。