npm源在国外,对于国内的开发人员来说,下载包的速度经常很慢,而且npm还经常挂。
可能在之前我们会通过如下做法将源指向淘宝源,然后使用cnpm操作,也可以使用的很愉快。
npm install -g cnpm --registry=https://registry.npm.taobao.org我们也可以通过工具nrm去切换npm源,它提供如下多个源供我们选择,更推荐选择淘宝源。

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

可看出taobao是最快的
比较有意思的说法是nrm要取代npm???可是nrm的安装在mac和windows下是依靠npm的。噗:)
对cnpm源进行管理可以让我们平时安装包时更快。同样的我们平时也可能会有切换node版本的场景。这个时候可以使用nvm对其进行管理。

可能有时在使用一些基于Node低版本封装的框架时我需要v0.10.32,但大多数时候都会使用较新版Node,此时也希望做一下版本管理。
npm install -g nvmnvm -vnvm install latest# 可能会很慢,请耐心等待
nvm ls-remotenvm install v8.6.0
# 默认是64位,32位需指定
nvm install v8.6.0 32nvm currentnvm use v8.6.0nvm list
# or
nvm lsnode -v对于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最新版本。