-
本文参加了由公众号@若川视野 发起的每周源码共读活动, 点击了解详情一起参与。
-
这是源码共读的第39期,链接:【若川视野 x 源码共读】第39期 | 如何发布一个 npm 库,自动化管理版本号、生成 changelog、tag 等 - 掘金 (juejin.cn)
前言
自毕业后很少写过文章,主要认为肚子里墨水比较少,然后认为共读源码是一件很难的事情,自看到川哥的源码共读加入了进来,也加入了源码共读交流群,今后也要开始加油阅读源码提升自身咯~
目标 Target
如何发布一个 npm 库,自动化管理版本号、生成 changelog、tag
实现
第一步创建 npm 账号
点击npm官网注册账号,选择 Sign Up
如果您已经拥有账户 可以选择 Sign In
第二步 Github 创建仓库
clone 拉到本地
建议选择使用 ssh
如果没有配置 ssh建议阅读以下:
github 右上角点开 setting
进入到个人设置页面 点击
默认没有配置过的是 空白的 点击 new ssh key
然后 需要填写 本地 ssh-key
拿到的 key 大概是 这种类型
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local
然后复制下来 放到
title 可以随便起一个 表达一下这个 ssh-key 是代表哪一台设备。
接下来就可以使用ssh来克隆仓库了
git clone git@github.com:xxxx/xxxx.git
打开本地项目目录
在当前目录开启终端 通过 vscode 环境变量
code .
打开本地项目
开始初始化项目
npm init -y
创建文件夹
mkdir src
在src目录下创建index.js 索引文件
cd ./src/
touch index.js
index.js 内容
开始发布
初始化 release-it
release-it npm地址 使用 release-it 进行版本管理并通过其多功能配置、强大的插件系统和挂钩发布到任何地方,以执行测试、构建和/或发布项目所需的任何命令。
npm init release-it
选择 生成 .release-it.json
🚀用于自动化版本控制和包发布相关任务的通用 CLI 工具:
- 凹凸版(例如
package.json) - Git 提交、标记、推送
- 使用钩子执行任何(测试或构建)命令
- 在 GitHub或GitLab创建发布
- 生成变更日志
- 发布到 npm
- 管理预发布
- 使用插件扩展
- 从任何CI/CD 环境中发布
安装 changlog plugins
npm install @release-it/conventional-changelog -D
打开 .release-it.json 文件
{
"github": {
"release": true
},
"git": {
"commitMessage": "release: v${version}"
},
"npm": {
"publish": false
},
"hooks": {
"after:bump": "echo 更新版本成功"
},
"plugins": {
"@release-it/conventional-changelog": {
"preset": "angular",
"infile": "CHANGELOG.md"
}
}
}
配置 package.json scripts
{
"name": "npmjs-package",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"commit": "git-cz",
"release": "release-it"
},
"repository": {
"type": "git",
"url": "git+https://github.com/muddyrain-source-code-reading/npmjs-package.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/muddyrain-source-code-reading/npmjs-package/issues"
},
"homepage": "https://github.com/muddyrain-source-code-reading/npmjs-package#readme",
"devDependencies": {
"@release-it/conventional-changelog": "^5.1.1",
"git-cz": "^4.9.0",
"release-it": "^15.9.3"
}
}
执行 release
npm run release
然后同步代码到 github 仓库中。
发布npm
npm login
浏览器弹出
如果 登录完返回
Public registration is not allowed
切换源
nrm use npm
切换完成后 就可以发布了
npm publish
注意: package.json name 必须起一个 npm站点没有的package包名
opmjs
、
总结
发现每次编写完,会有一丝丝的成就感,全部是自己的点滴以及记录,希望后面可以继续坚持下来。