我正在参与掘金会员专属活动-源码共读第一期,点击参与
前言
相信很多人都不知道 release it 这个东西,我也是通过看了这篇文章后 还在用开发者工具上传小程序? 快来试试 miniprogram-ci 提效摸鱼 才了解这个东西的,然后就一鼓作气看了关于它的源码部分,下面便来简单记录一下阅读 release-it 源码的一些心得与笔记。
release-it 介绍
那么,release-it 是什么呢?官方解释是自动进行版本控制和包发布的 CLI 工具。咱们简单点理解它就是一种工具释放版本,它可以自动提升版本。它有很多功能,比如监测版本冲突;进行 git 提交、打 tag、推送分支等功能;在 GitHub 上创建发布分支;生成变更日志等等。今天我们要学习的就是 如何使用 release-it 以及它的源码部分。
安装 release-it
我们首先来安装一下 release it。
npm init release-it
// 然后选择 .release-it.json
这样的话便会在 package.json 中添加了一段关于 release-it 的脚本
"scripts": {
"release": "release-it"
},
运行 release
准备好以上这些,我们便可以运行 release 了。首次运行可能会提示我们登录 npm。
npm run release
通过运行 release 更新了项目版本号,并推送到 npm。
源码解读
还是和之前一样,在源码里通过 package.json 找到入口文件,如下所示:
不难发现入口文件为 lib 目录下的 index.js。
不过这里我们主要是来研究一下 npm init release-it 的原理。通过阅读文档以及源码可以知道,npm init 命令在执行的时候会转换成 npx 命令,所以 npm init release-it 其实等于 npx create-release-it。
从源码中不难发现,npm init release-it 之后会生成 .release-it.json 或者 package.json 的 release-it 配置。
const RELEASE_IT_CONFIG = '.release-it.json';
const PACKAGE_CONFIG = 'package.json';
在源码的最后一行可以看到如下代码,这段代码表示的意思是 npm install release-it --save-dev 这段命令。
import { execa } from 'execa';
....
....
await execa('npm', ['install', 'release-it', '--save-dev'], { stdio: 'inherit' });
这里引入的 execa 包可以调用 shell 和本地外部程序的 javascript 封装。
总结
关于 release-it 的学习还在继续,这次浅析了一下 release-it 源码,学会使用 release-it 管理版本号,并了解其原理。除此之外,通过 release-it 还可以进行发包(),总之多看源码多看文档。
参考文章:若川大佬的 还在用开发者工具上传小程序? 快来试试 miniprogram-ci 提效摸鱼
源码地址:源码地址