开发npm包的版本通过release-it做升级

182 阅读2分钟

「我正在参与掘金会员专属活动-源码共读第一期,点击参与

这篇文章主要讲的是npm包如通过release-it做版本号提升、自动tagchangelog生成以及它是如何做到的。

我们研究一个东西是什么之前,首先的知道如何使用它?

使用步骤:

  1. 首先我们npm init -y,生成一个空项目。
  2. 运行命令npm init release-it,选择指定的配置文件.release-it.json
  3. 然后接着会自动安装该npm包的其他依赖。
  4. 我们还要安装npm i @release-it/conventional-changelog -D这个是用来生成changelog的。
  5. 运行npm run release看看效果,结果报了如下图的错误。

image.png 提示我们需要登录, 运行npm login登录一下, 没有账号的注册一下

在我们开发过程中,就是这样的一步步试错,一步步解决问题,然后最终达到自己的目的,整个过程应该是最珍贵的,因为此时的我们正在成长。

  1. 登录之后,我们再次运行npm release,接着选择升级的版本版本号的语义标准这篇文章讲的很详细了,最后,我们的包就发布成功了。

npm init release-it干了啥?

npm官网我们了解到npm init <initializer> 可以用来建立新的项目或执行已经存在的包.

  • initializer如果有值,这个时候npx就开始安装create-<initializer>,执行包内的脚本,创建或更新package.json
  • 如果npm init,忽略了initializer输入,则它会问你一系列问题(-y/--yes可以忽略这些问题),创建package.json

npm init release-it对应的是第一种情况,通过npx 安装 create-release-it, 选择配置文件,生成 .release-it.json 或者 package.json 的 release-it 配置 写入

{
  "scripts": {
    "release": "release-it"
  }
}

package.json里,最后执行 npm install release-it --save-dev 也就是源码里的 await execa('npm', ['install', 'release-it', '--save-dev'], { stdio: 'inherit' });

接着我们执行npm run releaserelease-it开始执行,node_modules/release-it/bin/release-it.js,一切从release()函数开始

image.png 顺着这个函数就可以探索release-it如何给我们做版本管理了。

结束语

好了release-it就讲到这里了