npm包的发布

假设该待发布包在你本地的项目为 project1git

包的本地安装测试

在发布以前每每但愿在本地进行安装测试。那么须要一个其余的项目来本地安装待发布项目。npm

假设该其余项目为project2。假设project2和project1在同一级目录下。json

1. 建立指向待测试包的符号连接包

cd project1
npm link

2. 本地安装

cd project2
npm install '../project1'

这样就只须要在其余项目中只安装一次project1,由于安装的是指向project1的符号连接包,其一直指向真实的project1。若是project1被修改,那么project2依赖的project1也是被修改后的。测试

3.删除

要先解除对该project1的link:code

cd project1
npm unlink

再手动删除project2下的project1的符号连接包。若是不这样清除,在project1发布后,project2想要安装npm仓库中的project1就不能成功。ci

待弄懂此块儿link的原理及为何要这样才能清除get

包的正式发布

1. 完成git提交相关步骤

cd project1
  git add .
  git commit -m "xxx"

2. 修改version && git 打标签

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'

3. git 发布到远程

最好是保持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

https://stackoverflow.com/questions/17219102/how-to-make-git-push-include-tags-within-a-branch/17219399#17219399

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.

4. npm发布

若是是该包第一次发布:

npm whoami //验证你的凭据已存储在客户端
npm publish --access=public //若是是公开包这样发布,若是不是公开的包则去掉--access=public便可

若是是该包已经发布过,如今只是更新:

npm publish

而后去npmjs.com看一下你的包是否已经发布/更新

3. 安装已发布的包

cd project2
npm install project1 --save
相关文章
相关标签/搜索