修改变更日志格式

修改变更日志格式

Changesets 自带了一个相对基本的包变更日志的默认格式,显示了一些信息,但这是可定制的。在这里,我们将讨论如何修改变更日志,以包含额外的元信息。

设置使用哪些格式化函数

要更改变更日志的生成方式,您可以在 ./changeset/config.json 中使用 changelog 设置。该设置接受一个字符串,指向一个模块。您可以引用已安装的 npm 包,或者引用您自己编写的本地文件。

例如,changesets 有一个名为 @changesets/changelog-git 的包。要使用它,首先需要安装该包。

yarn add @changesets/changelog-git

然后,更改您的 .changeset/config.json 以指向新的包:

"changelog": "@changesets/changelog-git"

如果您想自己编写,可以引用文件路径。例如,您可以创建一个新文件 .changeset/my-changelog-config.js,然后在 .changeset/config.json 文件中引用它:

"changelog": "./my-changelog-config.js"

编写变更日志格式化函数

变更日志的格式化由两个不同的函数完成。getReleaseLinegetDependencyReleaseLine。它们必须作为生成文件的导出提供在一个对象中。变更日志生成函数的基本文件设置如下:

async function getReleaseLine() {}
 
async function getDependencyReleaseLine() {}
 
module.exports = {
  getReleaseLine,
  getDependencyReleaseLine,
};

这些函数在 changeset version 期间运行,预计返回一个字符串(或一个带有字符串的 promise)。

如果您使用 TypeScript 编写变更日志函数,可以使用类型。首先安装 @changesets/types,然后:

import { ChangelogFunctions } from "@changesets/types";
 
async function getReleaseLine() {}
 
async function getDependencyReleaseLine() {}
 
const defaultChangelogFunctions: ChangelogFunctions = {
  getReleaseLine,
  getDependencyReleaseLine,
};
 
export default defaultChangelogFunctions;
type getReleaseLine = (
  changeset: {
    // This is the string of the summary from the changeset markdown file
    summary: string;
    // This is an array of information about what is going to be released. each is an object with name: the name of the package, and type, which is "major", "minor", or "patch"
    releases;
    // the hash for the commit that introduced the changeset
    commit;
  },
  // the type of the change this changeset refers to, as "major", "minor", or "patch"
  type,
  // This needs to be explained - see @changesets/changelog-github's code for how this works
  changelogOpts
) => string;

TODO - 这个指南还没有完成。在完成之前,您可能需要深入研究我们现有的一些代码。

向变更日志函数添加选项

TODO