跳到主要内容
版本:4.0.0

Lint 和格式化

Midway 的框架和业务代码主要由 TypeScript 编写,默认使用 mwts 统一 lint 和格式化。

代码风格库

mwts 是 Midway 的 TypeScript 规范工具链,提供:

  • ESLint 检查(check / lint
  • 自动修复(fix
  • 默认格式化配置(默认 Prettier + ESLint

mwts 的设计思路来源于 gts,但不直接依赖 gts 包。

信息

在 Midway 项目中,一般脚手架会默认集成 mwts,这里主要说明配置方式和升级方式。

依赖与运行时要求

mwts 2.x 建议搭配:

{
"engines": {
"node": ">=20"
},
"devDependencies": {
"mwts": "^2.0.0",
"typescript": "^5.0.0"
}
}

初始化与迁移

新项目可直接初始化:

npx mwts init

如果是历史 mwts 1.x 项目(.eslintrc.json),可执行一次迁移:

npx mwts migrate

迁移后会生成 eslint.config.js(ESLint Flat Config)。

ESLint 配置(mwts 2.x)

mwts 2.x 使用 eslint.config.js,推荐配置如下(可按项目调整 ignores):

const mwtsConfig = require('mwts/eslint.config.js');

module.exports = [
{
ignores: ['**/node_modules', '**/dist'],
},
...mwtsConfig,
];

如果你的项目使用 Jest,建议按需为测试文件增加 globals:

const globals = require('globals');

module.exports = [
...require('mwts/eslint.config.js'),
{
files: ['**/*.test.ts', '**/*.spec.ts', '**/jest.setup.js'],
languageOptions: {
globals: {
...globals.jest,
},
},
},
];

执行检查和修复

常用脚本如下(仓库一般已内置):

{
"scripts": {
"lint": "mwts check",
"lint:fix": "mwts fix"
}
}

mwts check/lint/fix 也支持单文件参数,例如:

mwts check src/index.ts
mwts fix src/index.ts

Prettier 配置

默认模式下,保留 .prettierrc.js

module.exports = {
...require('mwts/.prettierrc.json'),
};

可选 formatter 模式

mwts init 支持三种模式:

  • 默认:Prettier + ESLint
  • --formatter stylisticESLint + Stylistic
  • --formatter biomeBiome + ESLint

未使用默认模式时,按生成的配置文件执行即可。