ESLint/编程配置模块
这是带有ESlint和Typescript配置的模块,用于CS的每个模块.
配置图
这个模块搭载了两个基础TypeScript配置——它们仅在类型检查严格性上有所不同.
tsconfig.strict.json(建议):
对所有新包装和新包装的推荐基础配置. 与 TypeScript 6.x 默认对齐 .
{
"extends": "@cksource-cs/eslint-config-cs-module/tsconfig.strict.json"
}
tsconfig.common.json(遗产):
原始的,非限制性的碱基配置. 仅用于尚未迁移到严格的软件包 预设。 新的软件包不应扩展此配置 .
{
"extends": "@cksource-cs/eslint-config-cs-module/tsconfig.common.json"
}
迁移到 6.x
6.0版本执行新版本 eslint.config.js,指平面配置是现在ESLint的默认配置格式. .eslintrc 已正式贬值 不应该使用它,因为对它的支持将在即将到来的ESLint主要版本中被去掉.
我们强烈建议使用联署材料单元(第1段)*.mjs用于定义配置 :
import { defineConfig, globalIgnores } from 'eslint/config';
import csConfig from '@cksource-cs/eslint-config-cs-module';
export default defineConfig(
csConfig,
globalIgnores( [
'**/coverage',
'**/dist',
'**/dist-tests'
] )
);
记着! 最新版本不再导出
/typescript子路径。 所有格式规则都通过一个切入点被曝光.
显著的线性变化
-
新规则
@typescript-eslint/consistent-type-imports鼓励指定type进口的关键字,以表示出口只存在于类型系统中,而非运行时间. 这使得转接器在不知道依赖类型的情况下可以减少进口. 此规则仅输出 awarn消息,因为它会影响所有现有导入中的重大代码样式变化. -
由于基础 断开更改 发生在
eslint,一些规则被删除并移至第三方插件. 显著的规则变化包括:max-len- > (中文)@stylistic/max-lenindent- > (中文)@stylistic/indentno-multi-spaces- > (中文)@stylistic/no-multi-spacesno-path-concat- > (中文)node/no-path-concatno-new-require- > (中文)node/no-new-require
-
这个新的主要版本也开始正确进行测试文件,因此可以注意到更多的linter出错.
-
指令 - 对于浏览器-环境脚本:
/* eslint-env browser */- > (中文)/* global window */
依赖性要求
eslint: "9.37.x"typescript: "5.9.x"
移徙过程应包含与以往类似的步骤.
迁移到 3.x
3.0.0版本引入了一些可以要求一些手动修正(所有基于代码审查过程中的评论)的用意规则,并引入了Typescript > 4.
从3.0.0版本起,这个模块需要特定的依赖性:
eslint: "8.6.0"eslint-import-resolver-node: "0.3.6"typescript: "5.4.5"
说明: 这可能是一种情况,当 @types/node 未更新模块。 最佳选项是将该模块更新至20.11.1.
因此,移徙进程应包含类似的步骤:
- 更新工程中的devDependents(slint, Typescript等).
- 更新 @cksource-cs/eslint-config-cs-module到 > 3.0.0版本
- 运行
pnpm cli build [package_name]或者说npm run build - 运行
npm run lint:fix - 手动解决所有问题.
- 运行
npm run lint - 运行所有测试.
- 修补检验.
说明: 这可能是一个问题 ts-node 在Mocha测试中,建议删除 ts-node 使用方法 dist-tests有关Mocha移民到AVA的更多信息,请参见本文: https://www.notion.so/ 从-Mocha-to-AVA-48bd10bf8be141349c4a8d302d5f957d 。 。 。 .
更新通关规则
如果你认为我们需要改变ESLint规则, 确保先与球队讨论. 一旦你得到了前行, 遵循下面的步骤 更新包 在整个CS:
- 更新
eslintrc.js视需要(采用通用ESLint规则)和/或typescript.js(仅针对特定技术规则). - 跳出此模块的版本( Q)
eslint-config-cs-module(单位:千美元)package.json。 。 。 . - 要估计需要做多少活来更新其他软件包中的linter模块,创建本地链接并尝试应用自定义:
csli link --min-version=3.0.0 eslint-config-cs-module && \
csli run lint:fix
- 如果您对修改感到满意,请继续使用PR并发布ESLint模块的新版本.
- 公关合并后,切换到
master.去CS寄存器根并运行以下命令来更新所有客户端包中的ESLint模块. 命令还将尝试自动修复任何错误,类似于我们在第2步中所做的.
pnpm -r install --dev && \
csli run deps:check --command-options="-u,-f @cksource-cs/eslint-config-cs-module" && \
pnpm -r install --dev && \
csli run lint:fix
- 需要时应用手动修正,将更改输入一个特性分支并创建 PR.