记一次发布/更新npm包的过程及包版本管理
您可以发布包含package.json
文件的任何目录。这里如何首次发布程序包以及如何在以后更新程序包。
如何发布包
制备
了解npm政策
在开始之前,如果您对网站礼仪,命名,许可或其他指南有疑问,最好查看npm的政策。
创建用户帐户
要发布,您必须是npm注册表中的用户。如果您不是用户,请使用 npm adduser
创建帐户。如果您在网站(https://www.npmjs.com/)上创建了用户帐户,请使用npm login
从终端访问您的帐户。
**下图显示已登录成功到npm**
测试:
- 键入
npm whoami
从终端看,如果你已经登录(从技术上讲,这也意味着你的证书已经存储在本地)。 - 检查您的用户名是否已添加到注册表https://npmjs.com/~username。(username为账户名),例如:
新建项目文件夹并在当前文件夹打开cmd命令,接着输入npm init创建package.json
查看包目录
此时文件夹中会生成一个package.json文件
查看内容
请注意,除非本地.gitignore
或.npmignore
文件忽略该目录,否则将包含目录中的所有内容。要了解如何使用这些命令,请参阅npm-developers
。
查看package.json文件
阅读使用package.json
以确保所需的详细信息反映在您的包中。
选择一个名字
为您的包选择一个唯一的名称。尝试选择一个描述性名称:
- 还没有其他人拥有
- 除了拼写错误之外,拼写不会像其他名字一样拼写
- 不会混淆他人的作者身份
- 符合npm政策指南。例如,不要将您的包命名为冒犯性的,也不要使用其他人的商标名称。
- 在package.json文件的相应行中指定名称。
注意:如果您使用范围,则前3个警告不适用。
包含文档(readme.md)
npm建议您包含一个自述文件来记录您的包。自述文件必须具有文件名readme.md
。文件扩展名.md
表示该文件是markdown文件。当有人找到您的包裹时,此文件将显示在npm网站上。
在开始之前,请查看一些软件包页面,以获取可以添加到自述文件中的信息的想法,并了解为什么这么重要。
- 使用任何文本编辑器创建文件。
- 将其保存在项目目录中,名称为readme.md
- 发布时,此文档将显示在人们下载程序包的网页上。
可以先在有道云笔记上新建一个Markdown文件,编辑完成后再复制到包中替换Readme.md文件
有道云笔记Markdown文件编辑指南:http://note.youdao.com/iyoudao/?p=2411&vendor=unsilent14
在npm官网上显示readme.md文件如下:
登录npm账号并使用npm publish
发布包。
输入npm login;登陆自己的账号,密码,邮箱
测试
去https://npmjs.com/package/<package>
。你应该看到一个关于你的新包的页面。它可能看起来像这样:
恭喜!
如何更新包
如何更新版本号
进行更改时,可以使用更新包
npm version <update_type>
其中<update_type>是语义版本控制版本之一,补丁,次要或主要版本。
此命令将自动更改版本号package.json中的
version字段值。
此处延伸一下版本号管理的内容:
版本号
语义化版本:https://semver.org/lang/zh-CN/
版本号格式:主版本号.次版本号.修订号
版本号递增规则:
– 主版本号:做了不兼容修改或颠覆式的重写
– 次版本号:向下兼容的功能性新增
– 修订号:向下兼容的问题修正
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
版本号只能增加,禁止下降,代码的修改必须以新版本形式更新;最初版本建议是从v0.1.0开始,0.x.y阶段是基础功能、公众API开发阶段。
1.0.0版本发布时机:
– 被用于正式环境
– 稳定的API被使用者依赖
– 很担心向下兼容的问题
万一不小心把一个不兼容的改版当成了次版本号发行了该怎么办?一旦发现自己破坏了语义化版本控制的规范,就要修正这个问题,并发行一个新的次版本号来更正这个问题并且恢复向下兼容。即使是这种情况,也不能去修改已发行的版本。
npm管理项目版本号
在命令行窗口输入npm version ?可以查看可以使用的命令:
执行命令及版本提升示例:
假设初始版本为0.1.0 ➜ xxx git:(master) npm version preminor v0.1.0-0 ➜ xxx git:(master) npm version minor v0.1.0 ➜ xxx git:(master) npm version prepatch v0.1.1-0 ➜ xxx git:(master) npm version patch v0.1.1 ➜ xxx git:(master) npm version prerelease v0.1.2-0 ➜ xxx git:(master) npm version premajor v1.0.0-0 ➜ xxx git:(master) npm version major v1.0.0
如果使用git进行项目管理,在进行版本提升前,需要将修改内容提交,即commit,然后再执行npm version xxx
进行版本提升,版本提升会自动被提交到当前分支中,可以通过git log
进行查看。
注意:如果您已将一个标签与您的npm帐户相关联,那么这也会将更新后的版本号添加到您的git存储库中。
更新版本号后,npm publish
再次运行。
测试:转到https://npmjs.com/package/<package>
。包裹号码应该更新。
如何更新自述文件
除非发布新版本的软件包,否则不会更新网站上显示的自述文件,因此您需要运行npm version patch
并npm publish
更新网站上显示的文档。