- 本文参加了由公众号@若川视野 发起的每周源码共读活动,点击了解详情一起参与。
- 第39期 | 如何发布一个 npm 库,自动化管理版本号、生成 changelog、tag 等
前言
虽然工作中是ctrl+CV工程师,但咱们也要有自己的输出,比如发布属于自己的npm包(emm,似乎这也是ctrl+cv😂,但好歹是自己配置的,四舍五入等于自己亲生的😁)。这里的npm包可以是常用的工具函数、组件库等,高级点的说法就是复用,下面就一起学学从0到1为自己的产品打商标吧!
收获清单
- 从0到1发布npm包
- release-it应用
- 编写一个简单的脚手架工具
准备工作
npm账号
- 注册npm账号备用(已有账号可以跳过),传送门,验证完再按步骤输入用户名、密码、邮箱等即可
npm包代码准备
- 在github/gittee建个仓库,方便后期协作迭代。记得添加
license!- npm init初始化npm包
- 执行
npm init release-it安装 release-it, - package.json中script标签添加
"release": "release-it" - 执行
npm run release下面是初步截图
- git提交规范及changelog生成
主要是利用git-cz、@release-it/conventional-changelog
// commit规范
pnpm i git-cz -D
// package.json中script标签添加:
"commit": "git-cz"
// changelog生成
pnpm i @release-it/conventional-changelog -D
release-it.json中添加,配置传送门(https://github.com/release-it/release-it/blob/master/docs/changelog.md)
"plugins": {
"@release-it/conventional-changelog": {
"preset": "angular",
"infile": "CHANGELOG.md"
}
}
// 执行 pnpm run release
git-cz截图
生成的changelog大概长这样
- 入口及命令
一般npm init的时候就可以指定入口或者直接package.json的main字段指定,在使用release-it等工具包的时候聪明的你是不是也会觉得只要安装了包并且配置script标签就可以开箱即用很神奇!发挥关键作用的就是bin标签了,以下是release-it源码位置截图:
发布npm包相关
- 登录
npm login
// 登录不成功利用nrm切换源,再次执行
npm i -g nrm
nrm use npm/yarn
- 发布/更新包
① npm run release
②// 更新时加上: npm version <版本号类型>
npm publish
首次发包截图
更新包截图
- 删除包
npm unpublish <包名> -force
总结
今天实践了利用release-it自动发版、生成changelog等,从0到1发布了npm包,为自己日后开发工具包打下基础,最后,源码学习不仅是为了提高编程能力还是为了更好地回归业务应用,纸上得来终觉浅绝知此事要躬行!