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 nvm
nvm -v
nvm install latest
# 可能会很慢,请耐心等待
nvm ls-remote
nvm install v8.6.0
# 默认是64位,32位需指定
nvm install v8.6.0 32
nvm current
nvm use v8.6.0
nvm list
# or
nvm ls
node -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
最新版本。