假设该待发布包在你本地的项目为 project1git
在发布以前每每但愿在本地进行安装测试。那么须要一个其余的项目来本地安装待发布项目。npm
假设该其余项目为project2。假设project2和project1在同一级目录下。json
cd project1 npm link
cd project2 npm install '../project1'
这样就只须要在其余项目中只安装一次project1,由于安装的是指向project1的符号连接包,其一直指向真实的project1。若是project1被修改,那么project2依赖的project1也是被修改后的。测试
要先解除对该project1的link:code
cd project1 npm unlink
再手动删除project2下的project1的符号连接包。若是不这样清除,在project1发布后,project2想要安装npm仓库中的project1就不能成功。ci
待弄懂此块儿link的原理及为何要这样才能清除get
cd project1 git add . git commit -m "xxx"
npm version major/minor/patch
package.json会改变version字段值,而后也会自动加一个git的tag,同时也会增长一个commit(加上步骤1的commit,不出意外的话此时本地有2个commits等待push)。假设version 字段自动变为1.3.4。cmd
另外,此处git若是想手动打标签能够这样(当只想发布git release却不想更新npm的时候能够这样)it
git tag -a v1.3.4 -m 'my version 1.3.4'
最好是保持npm的版本和git release的版本一致,因此有必要先将git tag发布出来:io
git push git push origin v1.3.4 //此时自动执行ci测试
若是想要一次同时推送branch和tag:
git push origin master --tags
参见https://www.git-scm.com/docs/git-push
The new "--follow-tags" option tells "git push" to push relevant annotated tags when pushing branches out.
This won't push all the tags, but only the ones accessible from the branch(es) HEAD(s) you are pushing.
若是是该包第一次发布:
npm whoami //验证你的凭据已存储在客户端 npm publish --access=public //若是是公开包这样发布,若是不是公开的包则去掉--access=public便可
若是是该包已经发布过,如今只是更新:
npm publish
而后去npmjs.com看一下你的包是否已经发布/更新
cd project2 npm install project1 --save