VUE 3.0 源码 script/release.js 模块发布

本文详细介绍了Vue 3.0源码中的`script/release.js`模块,从用户选择发布类型、版本号设定、版本有效性验证,到单元测试、package.json更新、变更日志生成、代码提交和推送到GitHub的整个过程。通过阅读,读者可以了解到Vue 3.0发布的内部机制。
摘要由CSDN通过智能技术生成

文件路径:VUE 3.0 源码 /script/release.js

该脚本从主函数main()函数的运行开始:

1、使用 prompt CLI提示插件,引导用户 Select release type...

      ? Select release type ...
      > patch (3.0.0)
        minor (3.0.0)
        major (3.0.0)
        prepatch (3.0.1-rc.0)
        preminor (3.1.0-rc.0)
        premajor (4.0.0-rc.0)
        prerelease (3.0.0-rc.6)
        custom

2、引导用户设置版本号,如果选择custom自定义版本,会提示当前的package.json version 为初始值进行编辑。

       √ Select release type · custom
       ? Input custom version » 3.0.0-rc.5

3、使用 semver 插件验证版本有效性。semver 全称Semantic Version 版本命名规范,可以比较两个版本号的大小、验证某个版本号是否合法、提取版本号,例如从“=v1.2.1”体取出"1.2.1"等功能。

4、再次确认版本

? Releasing v3.0.0-rc.6. Confirm? (y/N) » false

5、发布前做单元测试

6、更新 package.json 版本 & 内部依赖模块版本

7、从git元数据生成变更日志,判断有修改信息,进行code提交

8、Pushing to GitHub...

源码注释

/**
 * minimist 轻量级的命令行参数解析引擎
 * process.argv.slice(2) 对应 执行命令参数位置(即第3个起始位,对等下例中"-x 3 -y 4 -n 5 -abc --beep=boop foo bar baz"这部分数据) 实例如下:
 * node example/parse.js -x 3 -y 4 -n 5 -abc --beep=boop foo bar baz
 * args 结果为:{
 *      _: [ 'foo', 'bar', 'baz' ],
 *      x: 3,
 *      y: 4,
 *      n: 5,
 *      a: true,
 *      b: true,
 *      c: true,
 *      beep: 'boop'
 *  }
 */
const args = require('minimist')(process.argv.slice(2))
/** nodejs模块——fs模块:fs模块用于对系统文件及目录进行读写操作 */
const fs = require('fs')
/* nodejs模块:提供文件路径相关api */
const path = require('path')
/* 控制台日志标注样式 */
const chalk = require('chalk')
/**
 * Semantic Version 版本命名规范,提供以下等功能
 * 1. 比较两个版本号的大小
 * 2. 验证某个版本号是否合法
 * 3. 提取版本号,例如从“=v1.2.1”体取出"1.2.1"
 * 4.分析版本号是否属于某个范围或符合一系列条件
 */
const semver = require('semver')
/* 获取跟目录 package.json version信息 */
const currentVersion = require('../package.json').version
/**
 * enquirer: 用户友好、直观且易于创建的时尚CLI提示。
 * CLI(command-line interface,命令行界面)是指可在用户提示符下键入可执行指令的界面
 */
const { prompt } = require('enquirer')
/* 用于执行外部程序 例如:git */
const execa = require('execa')

/**
 * preId
 * prerelease('1.2.3-alpha.1') -> ['alpha', 1]
 */
co
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值