「源码共读」如何发布一个 npm 库,自动化管理版本号、生成 changelog、tag

510 阅读2分钟

前言

自毕业后很少写过文章,主要认为肚子里墨水比较少,然后认为共读源码是一件很难的事情,自看到川哥的源码共读加入了进来,也加入了源码共读交流群,今后也要开始加油阅读源码提升自身咯~

目标 Target

如何发布一个 npm 库,自动化管理版本号、生成 changelog、tag

实现

第一步创建 npm 账号

点击npm官网注册账号,选择 Sign Up

image.png

如果您已经拥有账户 可以选择 Sign In

image.png

第二步 Github 创建仓库

image.png

clone 拉到本地

image.png

建议选择使用 ssh

如果没有配置 ssh建议阅读以下:

github 右上角点开 setting

image.png

进入到个人设置页面 点击

image.png

默认没有配置过的是 空白的 点击 new ssh key

image.png

然后 需要填写 本地 ssh-key

git 官方生成 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

然后复制下来 放到

image.png

title 可以随便起一个 表达一下这个 ssh-key 是代表哪一台设备。

接下来就可以使用ssh来克隆仓库了

git clone git@github.com:xxxx/xxxx.git 

打开本地项目目录

在当前目录开启终端 通过 vscode 环境变量

code .

打开本地项目

image.png

开始初始化项目

npm init -y

创建文件夹

mkdir src

在src目录下创建index.js 索引文件

cd ./src/
touch index.js

index.js 内容

image.png

开始发布

初始化 release-it

release-it npm地址 使用 release-it 进行版本管理并通过其多功能配置、强大的插件系统和挂钩发布到任何地方,以执行测试、构建和/或发布项目所需的任何命令。

npm init release-it 

选择 生成 .release-it.json image.png

🚀用于自动化版本控制和包发布相关任务的通用 CLI 工具:

image.png

安装 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

image.png

然后同步代码到 github 仓库中。

发布npm

npm login

浏览器弹出

image.png

如果 登录完返回

Public registration is not allowed

切换源

nrm use npm

切换完成后 就可以发布了

npm publish

注意: package.json name 必须起一个 npm站点没有的package包名

opmjs image.png

总结

发现每次编写完,会有一丝丝的成就感,全部是自己的点滴以及记录,希望后面可以继续坚持下来。