第一步:发布第一个稳定版本

  1. npm publish//1.0.0

第二步:修改文件继续发布第二个版本

  1. git add -A && git commit -m "c"
  2. npm version patch
  3. npm publish//1.0.1

第三步:继续修改文件发布一个prerelease版本

  1. git add -A && git commit -m "c"
  2. npm version prerelease
  3. npm publish --tag -beta//版本n-n-n-n@1.0.2-0

第四步:继续修改发布第二个prerelease版本

  1. git add -A && git commit -m "c"
  2. npm version prerelease
  3. npm publish --tag beta//版本n-n-n-n@1.0.2-1

第五步:npm info查看我们的版本信息

  1. { name: 'n-n-n-n',
  2. 'dist-tags': { latest: '1.0.1', '-beta': '1.0.2-1' },
  3. versions: [ '1.0.0', '1.0.1', '1.0.2-0', '1.0.2-1' ],
  4. maintainers: [ 'liangklfang <liangklfang@163.com>' ],
  5. time:
  6. { modified: '2017-04-01T12:17:56.755Z',
  7. created: '2017-04-01T12:15:23.605Z',
  8. '1.0.0': '2017-04-01T12:15:23.605Z',
  9. '1.0.1': '2017-04-01T12:16:24.916Z',
  10. '1.0.2-0': '2017-04-01T12:17:23.354Z',
  11. '1.0.2-1': '2017-04-01T12:17:56.755Z' },
  12. homepage: 'https://github.com/liangklfang/n#readme',
  13. repository: { type: 'git', url: 'git+https://github.com/liangklfang/n.git' },
  14. bugs: { url: 'https://github.com/liangklfang/n/issues' },
  15. license: 'ISC',
  16. readmeFilename: 'README.md',
  17. version: '1.0.1',
  18. description: '',
  19. main: 'index.js',
  20. scripts: { test: 'echo "Error: no test specified" && exit 1' },
  21. author: '',
  22. gitHead: '8123b8addf6fed83c4c5edead1dc2614241a4479',
  23. dist:
  24. { shasum: 'a60d8b02222e4cae74e91b69b316a5b173d2ac9d',
  25. tarball: 'https://registry.npmjs.org/n-n-n-n/-/n-n-n-n-1.0.1.tgz' },
  26. directories: {} }

我们只要注意下面者两个部分:

  1. 'dist-tags': { latest: '1.0.1', '-beta': '1.0.2-1' },
  2. versions: [ '1.0.0', '1.0.1', '1.0.2-0', '1.0.2-1' ],

其中最新的稳定版本和最新的beta版本可以在dist-tags中看到,而versions数组中存储的是所有的版本。

第六步:npm dist-tag命令

  1. npm dist-tag ls n-n-n-n

即npm dist-tag获取到所有的最新的版本,包括prerelease与稳定版本,得到下面结果:

  1. -beta: 1.0.2-1
  2. latest: 1.0.1

第七步:当我们的prerelease版本已经稳定了,重新设置为稳定版本

  1. npm dist-tag add n-n-n-n@1.0.2-1 latest

此时你通过npm info查看可以知道:

  1. { name: 'n-n-n-n',
  2. 'dist-tags': { latest: '1.0.2-1', '-beta': '1.0.2-1' },
  3. versions: [ '1.0.0', '1.0.1', '1.0.2-0', '1.0.2-1' ],
  4. maintainers: [ 'liangklfang <liangklfang@163.com>' ],
  5. time:
  6. { modified: '2017-04-01T12:24:55.800Z',
  7. created: '2017-04-01T12:15:23.605Z',
  8. '1.0.0': '2017-04-01T12:15:23.605Z',
  9. '1.0.1': '2017-04-01T12:16:24.916Z',
  10. '1.0.2-0': '2017-04-01T12:17:23.354Z',
  11. '1.0.2-1': '2017-04-01T12:17:56.755Z' },
  12. homepage: 'https://github.com/liangklfang/n#readme',
  13. repository: { type: 'git', url: 'git+https://github.com/liangklfang/n.git' },
  14. bugs: { url: 'https://github.com/liangklfang/n/issues' },
  15. license: 'ISC',
  16. readmeFilename: 'README.md',
  17. version: '1.0.2-1',
  18. description: '',
  19. main: 'index.js',
  20. scripts: { test: 'echo "Error: no test specified" && exit 1' },
  21. author: '',
  22. gitHead: '03189d2cc61604aa05f4b93e429d3caa3b637f8c',
  23. dist:
  24. { shasum: '41ea170a6b155c8d61658cd4c309f0d5d1b12ced',
  25. tarball: 'https://registry.npmjs.org/n-n-n-n/-/n-n-n-n-1.0.2-1.tgz' },
  26. directories: {} }

主要关注如下:

  1. 'dist-tags': { latest: '1.0.2-1', '-beta': '1.0.2-1' },
  2. 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模块的TAG管理

npm-dist-tag

npm-version

node-semver

[转] 合理使用npm version与npm dist-tag详解的更多相关文章

  1. angular2 学习笔记 ( angular cli & npm version manage npm 版本管理 )

    更新 : 2017-05-05 现在流行 Yarn ! 它是 facebook google 推出的东西. 算是补助 npm 做的不够好的地方. 源码依然是发布去 npm,只是下载接口换掉罢了哦. n ...

  2. docker tag 详解

    docker tag 用于给镜像打标签,语法如下: docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] ① 比如我现在有一个 centos 镜像: [ro ...

  3. npm version ^ meaning

    npm version ^ meaning ^ 更新版 https://docs.npmjs.com/cli/v6/commands/npm-version https://github.com/ge ...

  4. Node入门教程(7)第五章:node 模块化(下) npm与yarn详解

    Node的包管理器 JavaScript缺少包结构的定义,而CommonJS定义了一系列的规范.而NPM的出现则是为了在CommonJS规范的基础上,实现解决包的安装卸载,依赖管理,版本管理等问题. ...

  5. npm package.json属性详解

    概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...

  6. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  7. NPM使用详解(下)

    NPM使用详解(下) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impo ...

  8. NPM使用详解(上)

    1.NPM是什么? NPM是JavaScript的包管理工具,在安装NodeJS(什么?你不知道node?来,我们合计合计:https://nodejs.org/)的时候,会自动安装上npm. 要查看 ...

  9. node.js的npm详解

    一.什么是npm呢 npm(Node Package Manager,node包管理器)是node的包管理器,他允许开发人员在node.js应用程序中创建,共享并重用模块.模块就是可以在不同的项目中重 ...

随机推荐

  1. vue2+axios在不同的环境打包不同的接口地址

    node.js的环境变量 process process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程.作为一个对象,它对于 Node.js 应用程序始终是可用 ...

  2. shell 不使用循环批量创建用户

    ..}|tr " " "\n"|awk '{print "useradd",$0,";date +%N|md5sum|cut -c ...

  3. Linux下设置时间

    Linux下设置时间 提供两种最根本有效的方式,就是更改时区.这里以更改为国内上海时间例子,其他地方时区同理. 方法一 备份文件 mv /etc/localtime /etc/localtime.ba ...

  4. softmax详解

    原文地址:https://blog.csdn.net/bitcarmanlee/article/details/82320853 1.softmax初探 在机器学习尤其是深度学习中,softmax是个 ...

  5. 【原创】Linux基础之测试域名IP端口连通性

    一 测试域名是否可达 1 ping # ping www.baidu.comPING www.a.shifen.com (220.181.112.244) 56(84) bytes of data.6 ...

  6. swift 学习- 22 -- 嵌套类型

    // 枚举 常备用于为特定的类 或 结构体实现某些功能, 类似的, 枚举可以方便的定义工具类 或 结构体, 从而为某个复杂的类型所使用, 为了实现这种功能, Swift 允许你定义 嵌套类型, 可以在 ...

  7. Jenkins三.1 配置maven

    maven配置安装下载 wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-b ...

  8. Confluence 6 用户目录图例 - 只读连接 LDAP 整合本地用户组

    上面的图:Confluence  连接到一 LDAP 目录,权限对本地用户组设置为只读. https://www.cwiki.us/display/CONFLUENCEWIKI/Diagrams+of ...

  9. iis配置问题

    最近调试程序时发现一直用的是vs自带的服务器 当我切换成iis时,发现虽然能显示界面,却连不上数据库 (程序数据库的一系列操作是通过wcf ria完成的) 以前在winserver2012上也遇到过这 ...

  10. 第十四单元 Linux网络原理及基础设置

    ·ifconfig命令来维护网络(详见linux系统管理P422) 1) 掌握ifconfig命令的功能:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址.2) 灵活应用ifconfig命令 ...