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

包的本地安装测试

在发布之前往往希望在本地进行安装测试。那么需要一个其他的项目来本地安装待发布项目。

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

1. 创建指向待测试包的符号链接包

cd project1
npm link

2. 本地安装

cd project2
npm install '../project1'

这样就只需要在其他项目中只安装一次project1,因为安装的是指向project1的符号链接包,其一直指向真实的project1。如果project1被修改,那么project2依赖的project1也是被修改后的。

3.删除

要先解除对该project1的link:

cd project1
npm unlink

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

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

包的正式发布

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。

另外,此处git如果想手动打标签可以这样(当只想发布git release却不想更新npm的时候可以这样)

git tag -a v1.3.4 -m 'my version 1.3.4'

3. git 发布到远程

最好是保持npm的版本和git release的版本一致,所以有必要先将git tag发布出来:

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

npm包的发布的更多相关文章

  1. npm 包的 发布 流程

    npm 包的发布流程 本文主要是针对 还未曾发布过自己的 npm 的同学,阐述一下 npm 的发布流程 熟悉的同学,可以绕道了. 首先你得有一个 自己的 npmjs.com 的账号 (没有的话,就到 ...

  2. 如何开发一个npm包并发布

    一.安装nodejs 不多说了,网上教程多得是 二.创建自己的npm包 目录结构 npm-test a.js b.js package.json 开发 为了简单便于理解,就开发一个简单地hello程序 ...

  3. Github 持续化集成 工作流 Npm包自动化发布

    Github 持续化集成 工作流 Npm包自动化发布 简介   持续集成指的是,频繁地(一天多次)将代码集成到主干. 它的好处主要有两个: 快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误 ...

  4. 如何开发一个npm包并发布到npm中央仓库

    转自: https://liaolongdong.com/2019/01/24/publish-public-npm.html 如何开发一个npm包并发布到npm中央仓库需求背景:平时在项目工作中可能 ...

  5. npm包的发布和管理

    npm包管理 npm其实是Node.js的包管理工具(node package manager). 为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScrip ...

  6. 关于npm 包的发布

    注册一个npm 账号,打开命令行输入 npm add user 然后登录 npm login 发布npm 包,在你要发布的包的目录下,在创建账号后需要认证邮箱,否则无法发布,发布同一个包,每次的版本需 ...

  7. 从0开始用webpack开发antd,react组件库npm包并发布

    一.初始化一个npm包 1.新建一个文件夹(名称随意,建议和报名一致),输入命令 :npm init -y 会自动生成一个包的说明文件 package.json如下(本文以scroll-antd-ta ...

  8. npm包实现发布正式和测试版

    npm publish的時候 怎麽發測試版和正式版本呢? 通常我們一般情況下 直接 npm publish 提交自己的開發包后,在項目中 npm install @packageName 是下載下來剛 ...

  9. 创建并发布npm包

    1.npm官网创建npm账户 npm网站地址:https://www.npmjs.com/ npm网站注册地址:https://www.npmjs.com/signup 2.命令行工具登录npm np ...

随机推荐

  1. iOS开发进阶 - 使用Carthage管理iOS第三方库

    移动端访问不佳,请访问我的个人博客 最近在研究Swift,一不小心发现一个好的的管理iOS第三方库Carthage,就跟第一次使用CocoaPods时一样兴奋不已,在研究了大半天后终于能用了,使用起来 ...

  2. LVS+Keepalived+Tomcat实现高可用性及均衡负载

    1.Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案.Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考 ...

  3. vim 中的常用编辑

    1.将1到3列行首添加‘#’ :1,3s/^/#/g 2.将1到3列行首去除‘#’ :1,3s/^#//g 3.将1到3列中前两列字符去掉 :1,3s/^..//g 4.将1到3列中行末前两个字符去掉 ...

  4. dataframe 列名重新排序

    在用list包含多个dict的模式生成dataframe时,由于dict的无序性,而uci很多数据的特征名直接是1,2,3...,生成的dataframe和原生的不一样, 为了方便观看和使用,我们将其 ...

  5. NumPy统计函数

    NumPy - 统计函数 NumPy 有很多有用的统计函数,用于从数组中给定的元素中查找最小,最大,百分标准差和方差等. 函数说明如下: numpy.amin() 和 numpy.amax() 这些函 ...

  6. Three.js基础:建立Cube并实现鼠标交互,动画旋转

    index.html文件: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  7. GDI+ 双缓冲字体模糊

    只是记录自己的UI库,对其他估计没什么帮助 void CListCtrlUI::ReFillRect(HDC hdc){ if (!m_pImage) { Graphics gs(hdc); int ...

  8. js 小秘密

    1.RegExp 对象方法 test检索字符串中指定的值.返回 true 或 false. 支持正则表达式的 String 对象的方法

  9. forEach和map的区别

    写法上没什么区别,只是返回值会不一样,map能够返回每一项,而forEach则返回undefined,以后要用哪个你知道了吧?map返回新的数组,可以进行后续更多的操作,例如: let arr = [ ...

  10. [置顶] Android Shape一些新玩法?

    敏少咨讯: 1.生活琐事篇 最近由于公司赶项目所以偷懒了,博客没有及时更新,还请小伙伴们手下留情啊!最近发生了很多趣事,就在今天我们学校退书籍费,这可把我开心的哈哈!无缘无故又有钱了,嘿嘿,刚好五一出 ...