第3期|【源码】vue.js的发布流程——Vue3 Release.js源码解读

学习目标:

1)学习 release.js 源码,输出记录文档。
2) 熟悉发布流程

准备工作:
  • Vue3 源码地址:https://github.com/vuejs/vue-next 代码拉下来以后直接yarn
  • Vue3 Release 源码解读:https://juejin.cn/post/6997943192851054606 链接
  • 确保 Node.js 版本是 10+, 而且 yarn 的版本是 1.x Yarn 1.x

贡献指南 .github/contributing.md
了解到 Vue.js 采用的是 monorepo 的方式进行代码的管理。
但是vue3用的是 Yarn Workspace
因为公司涉及到的项目都是一般项目,所以没有接触过,问了一下度娘,有几篇文章写的很清楚

Yarn Workspace
  • arn 从 1.0 版开始支持Workspace(工作区)
  • Workspace 可以统一管理有多个项目的仓库,
  • 可以在每个项目下使用独立的 package.json 管理依赖
  • 可以yarn 命令安装或者升级所有依赖等
  • 可以使多个项目共享同一个 node_modules 目录
  • 提升开发效率和降低磁盘空间占用。
  • 很多知名的开源项目也使用了 Yarn Workspace,如 vuereactjest
// vue-next/package.json (多余的代码已省略)
{
    "private": true,
    "version": "3.2.2",
    "workspaces": [
        "packages/*"
    ],
    "scripts": {
        "release": "node scripts/release.js"
    }
}
vue-next/scripts/release.js 文件代码解读
// 解析命令行参数
const args = require('minimist')(process.argv.slice(2))
// 文件模块
const fs = require('fs')
// 路径
const path = require('path')
/* 控制台  chalk 是一个可以给终端输出加上色彩的工具包,有了它,你的终端将变得五颜六色,花哨的一匹
 * GitHub 地址: https://github.com/chalk/chalk
 * npm i -D chalk
*/
const chalk = require('chalk')
/* semver 语义化版本 https://semver.org/lang/zh-CN/
 * 版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
 * 主版本号:当你做了不兼容的 API 修改,
 * 次版本号:当你做了向下兼容的功能性新增,
 * 修订号:当你做了向下兼容的问题修正。
 * 先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
 * 它的作用是用于版本校验比较。
*/
const semver = require('semver')
const currentVersion = require('../package.json').version
// 交互式询问用户输入。
const { prompt } = require('enquirer')
/* 执行子进程命令 就是在终端命令行执行命令
 * execa是可以调用shell和本地外部程序的javascript封装。
 * 会启动子进程执行。支持多操作系统,包括windows。如果父进程退出,则生成的全部子进程都被杀死
 * 在第一期用的是 childProcess去执行
 */
const execa = require('execa')


// vue-next/scripts/release.js

// 对应 yarn run release --preid=beta
// beta
const preId =
  args.preid ||
  (semver.prerelease(currentVersion) && semver.prerelease(currentVersion)[0])

// 对应 yarn run release --dry
// true
const isDryRun = args.dry
// 对应 yarn run release --skipTests
// true 跳过测试
c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值