npm包的发布
假设该待发布包在你本地的项目为 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
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包的发布的更多相关文章
- npm 包的 发布 流程
npm 包的发布流程 本文主要是针对 还未曾发布过自己的 npm 的同学,阐述一下 npm 的发布流程 熟悉的同学,可以绕道了. 首先你得有一个 自己的 npmjs.com 的账号 (没有的话,就到 ...
- 如何开发一个npm包并发布
一.安装nodejs 不多说了,网上教程多得是 二.创建自己的npm包 目录结构 npm-test a.js b.js package.json 开发 为了简单便于理解,就开发一个简单地hello程序 ...
- Github 持续化集成 工作流 Npm包自动化发布
Github 持续化集成 工作流 Npm包自动化发布 简介 持续集成指的是,频繁地(一天多次)将代码集成到主干. 它的好处主要有两个: 快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误 ...
- 如何开发一个npm包并发布到npm中央仓库
转自: https://liaolongdong.com/2019/01/24/publish-public-npm.html 如何开发一个npm包并发布到npm中央仓库需求背景:平时在项目工作中可能 ...
- npm包的发布和管理
npm包管理 npm其实是Node.js的包管理工具(node package manager). 为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScrip ...
- 关于npm 包的发布
注册一个npm 账号,打开命令行输入 npm add user 然后登录 npm login 发布npm 包,在你要发布的包的目录下,在创建账号后需要认证邮箱,否则无法发布,发布同一个包,每次的版本需 ...
- 从0开始用webpack开发antd,react组件库npm包并发布
一.初始化一个npm包 1.新建一个文件夹(名称随意,建议和报名一致),输入命令 :npm init -y 会自动生成一个包的说明文件 package.json如下(本文以scroll-antd-ta ...
- npm包实现发布正式和测试版
npm publish的時候 怎麽發測試版和正式版本呢? 通常我們一般情況下 直接 npm publish 提交自己的開發包后,在項目中 npm install @packageName 是下載下來剛 ...
- 创建并发布npm包
1.npm官网创建npm账户 npm网站地址:https://www.npmjs.com/ npm网站注册地址:https://www.npmjs.com/signup 2.命令行工具登录npm np ...
随机推荐
- Spring_事务(1)
- Spring MVC执行原理和基于Java的配置过程
一.Spring MVC执行原理和基于Java配置的配置过程 (一)Spring MVC执行过程,大致为7步. 所有的请求都会经过Spring的一个单例的DispacherServlet. Dispa ...
- Mac开发
工具类:
- Quartz(1)--框架简介
一.概述 Quartz是一个完全由Java编写的开源任务调度的框架,通过触发器设置作业定时运行规则,控制作业的运行时间.主要用来执行定时任务,如:定时发送信息.定时生成报表等等. 二.为什么会选择Qu ...
- 关于ENABLE_BITCODE
pod 'TSVoiceConverter' 如果,设置了工程target的ENABLE_BITCODE为NO.但是,在真机上运行时,仍然提示类似于如下错误: URGENT: all bitcode ...
- 移动端给img元素添加content: "";
误给img原始添加 content: "";属性后发现在ios系统中图片是不会显示的android系统是正常的
- NumPy使用 Matplotlib 绘制直方图
NumPy - 使用 Matplotlib 绘制直方图 NumPy 有一个numpy.histogram()函数,它是数据的频率分布的图形表示. 水平尺寸相等的矩形对应于类间隔,称为bin,变量hei ...
- thrift安装及常见问题
一.安装thrift (macOS / Linux) 1. 下载thrift0.10.0源码 https://github.com/apache/thrift/releases/tag/0.10.0 ...
- 开发中Dialog多弹窗管理
随着项目的不断迭代,加上产品经理大法(这里加一个弹窗提示,这里加一个引导….)各种弹窗在应用启动时候需要展示, 然而它们出现的时机还有可能重叠.我勒个擦...有没有一种优(tou)雅(lan)的方式来 ...
- css类名大全以及其他关键词
标签 abbr 缩写的标记 token-based-auth-backend 后端 token-based-auth-frontend 前端 signin 登陆 Sign in / Sign u ...