[转] 合理使用npm version与npm dist-tag详解
第一步:发布第一个稳定版本
npm publish//1.0.0
第二步:修改文件继续发布第二个版本
git add -A && git commit -m "c"
npm version patch
npm publish//1.0.1
第三步:继续修改文件发布一个prerelease版本
git add -A && git commit -m "c"
npm version prerelease
npm publish --tag -beta//版本n-n-n-n@1.0.2-0
第四步:继续修改发布第二个prerelease版本
git add -A && git commit -m "c"
npm version prerelease
npm publish --tag beta//版本n-n-n-n@1.0.2-1
第五步:npm info查看我们的版本信息
{ name: 'n-n-n-n',
'dist-tags': { latest: '1.0.1', '-beta': '1.0.2-1' },
versions: [ '1.0.0', '1.0.1', '1.0.2-0', '1.0.2-1' ],
maintainers: [ 'liangklfang <liangklfang@163.com>' ],
time:
{ modified: '2017-04-01T12:17:56.755Z',
created: '2017-04-01T12:15:23.605Z',
'1.0.0': '2017-04-01T12:15:23.605Z',
'1.0.1': '2017-04-01T12:16:24.916Z',
'1.0.2-0': '2017-04-01T12:17:23.354Z',
'1.0.2-1': '2017-04-01T12:17:56.755Z' },
homepage: 'https://github.com/liangklfang/n#readme',
repository: { type: 'git', url: 'git+https://github.com/liangklfang/n.git' },
bugs: { url: 'https://github.com/liangklfang/n/issues' },
license: 'ISC',
readmeFilename: 'README.md',
version: '1.0.1',
description: '',
main: 'index.js',
scripts: { test: 'echo "Error: no test specified" && exit 1' },
author: '',
gitHead: '8123b8addf6fed83c4c5edead1dc2614241a4479',
dist:
{ shasum: 'a60d8b02222e4cae74e91b69b316a5b173d2ac9d',
tarball: 'https://registry.npmjs.org/n-n-n-n/-/n-n-n-n-1.0.1.tgz' },
directories: {} }
我们只要注意下面者两个部分:
'dist-tags': { latest: '1.0.1', '-beta': '1.0.2-1' },
versions: [ '1.0.0', '1.0.1', '1.0.2-0', '1.0.2-1' ],
其中最新的稳定版本和最新的beta版本可以在dist-tags中看到,而versions数组中存储的是所有的版本。
第六步:npm dist-tag命令
npm dist-tag ls n-n-n-n
即npm dist-tag获取到所有的最新的版本,包括prerelease与稳定版本,得到下面结果:
-beta: 1.0.2-1
latest: 1.0.1
第七步:当我们的prerelease版本已经稳定了,重新设置为稳定版本
npm dist-tag add n-n-n-n@1.0.2-1 latest
此时你通过npm info查看可以知道:
{ name: 'n-n-n-n',
'dist-tags': { latest: '1.0.2-1', '-beta': '1.0.2-1' },
versions: [ '1.0.0', '1.0.1', '1.0.2-0', '1.0.2-1' ],
maintainers: [ 'liangklfang <liangklfang@163.com>' ],
time:
{ modified: '2017-04-01T12:24:55.800Z',
created: '2017-04-01T12:15:23.605Z',
'1.0.0': '2017-04-01T12:15:23.605Z',
'1.0.1': '2017-04-01T12:16:24.916Z',
'1.0.2-0': '2017-04-01T12:17:23.354Z',
'1.0.2-1': '2017-04-01T12:17:56.755Z' },
homepage: 'https://github.com/liangklfang/n#readme',
repository: { type: 'git', url: 'git+https://github.com/liangklfang/n.git' },
bugs: { url: 'https://github.com/liangklfang/n/issues' },
license: 'ISC',
readmeFilename: 'README.md',
version: '1.0.2-1',
description: '',
main: 'index.js',
scripts: { test: 'echo "Error: no test specified" && exit 1' },
author: '',
gitHead: '03189d2cc61604aa05f4b93e429d3caa3b637f8c',
dist:
{ shasum: '41ea170a6b155c8d61658cd4c309f0d5d1b12ced',
tarball: 'https://registry.npmjs.org/n-n-n-n/-/n-n-n-n-1.0.2-1.tgz' },
directories: {} }
主要关注如下:
'dist-tags': { latest: '1.0.2-1', '-beta': '1.0.2-1' },
versions: [ '1.0.0', '1.0.1', '1.0.2-0', '1.0.2-1' ]
此时latest版本已经是prerelease版本”1.0.2-1”了!此时用户如果直接运行npm install就会安装我们的prerelease版本了,因为版本已经更新了!
参考资料:
[转] 合理使用npm version与npm dist-tag详解的更多相关文章
- angular2 学习笔记 ( angular cli & npm version manage npm 版本管理 )
更新 : 2017-05-05 现在流行 Yarn ! 它是 facebook google 推出的东西. 算是补助 npm 做的不够好的地方. 源码依然是发布去 npm,只是下载接口换掉罢了哦. n ...
- docker tag 详解
docker tag 用于给镜像打标签,语法如下: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] ① 比如我现在有一个 centos 镜像: [ro ...
- npm version ^ meaning
npm version ^ meaning ^ 更新版 https://docs.npmjs.com/cli/v6/commands/npm-version https://github.com/ge ...
- Node入门教程(7)第五章:node 模块化(下) npm与yarn详解
Node的包管理器 JavaScript缺少包结构的定义,而CommonJS定义了一系列的规范.而NPM的出现则是为了在CommonJS规范的基础上,实现解决包的安装卸载,依赖管理,版本管理等问题. ...
- npm package.json属性详解
概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...
- 【原】npm 常用命令详解
今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...
- NPM使用详解(下)
NPM使用详解(下) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impo ...
- NPM使用详解(上)
1.NPM是什么? NPM是JavaScript的包管理工具,在安装NodeJS(什么?你不知道node?来,我们合计合计:https://nodejs.org/)的时候,会自动安装上npm. 要查看 ...
- node.js的npm详解
一.什么是npm呢 npm(Node Package Manager,node包管理器)是node的包管理器,他允许开发人员在node.js应用程序中创建,共享并重用模块.模块就是可以在不同的项目中重 ...
随机推荐
- CPU 利用率背后的真相,只有 1% 人知道【转】
导读:本文翻译自 Brendan Gregg 去年的一篇博客文章 “CPU Utilization is Wrong”,从标题就能想到这篇文章将会引起争议.文章一上来就说,我们“人人皆用.处处使用,每 ...
- Windowns下使用SecuretCRT编写脚本增加高亮
作者:邓聪聪 secureCRT设置高亮1)修改环境变量:export TERM=xterm-color 2)增加VIM高亮:vim ~/.vimrc set syntax=on colorsch ...
- python3+selenium入门08-鼠标事件
使用click()可以模拟鼠标的左键点击事件,现在的web页面中有很多其他的鼠标交互方式,比如鼠标右击.双击.悬停.鼠标拖放等功能.在WebDriver中,将这些关于鼠标操作的方法封装在ActionC ...
- cryptsetup文件系统加密
今天做了SYC攻防题的文件系统挂载部分,在找到挂载最内层的final文件时发现mount无法识别,这也许就是一个加密的文件系统吧,还好-在龟速的 网络环境下查阅到了losetup循环挂载系统命令,但是 ...
- 004_为什么不推荐APP使用SSL-PINNING
背景 之前工作的经历,前面技术团队的APP使用了SSL-PINNING,服务器SSL证书到期前,测试环境更换证书,在更换配置OK后,发现APP停止服务了.所有的请求全部都失败. 后来查到是APP使用了 ...
- elasticsearch自动按天创建索引脚本
elasticsearch保存在一个索引中数据量太大无法查询,现在需要将索引按照天来建,查询的时候关联查询即可 有时候es集群创建了很多索引,删不掉,如果是测试环境或者初始化es集群(清空所有数据), ...
- FS G729转码测试记录
默认情况下Freeswitch自带的G729模块是pass-through-并不支持转码.我们决定添加一个支持G729转码的模块到Freeswitch.参考自 8000HZ. 一.安装支持转码的G72 ...
- Ex 2_27 矩阵A的平方是A自乘后的乘积,即AA..._第三次作业
- vi快速查找
用vim时,想高亮显示一个单词并查找的方发,将光标移动到所找单词. 1: shift + "*" 向下查找并高亮显示 2: shift + "#" 向上查找 ...
- with文件操作
enumeratef = open('lyrics',"r",encoding=""utf-8) #文件句柄"""对文件操作流程 ...