ESLint 配置
Encoura 的首选配置用于 TypeScript, Prettier, ESLint, CotentLint 和 马克德林特.
开始
安装此软件包, ESLint 语录, (中文(简体) ), 嘘,以及 阶段 作为非依赖性 :
npm install --save-dev @encoura/eslint-config eslint@^10 husky lint-staged
将以下内容添加到您的区域 package.json 文件 :
...
"scripts": {
...
"prepare": "husky",
...
},
...
配置提交图
要配置 提交创建一个
commitlint.config.js 包含
如下:
module.exports = require('@encoura/eslint-config/commitlint.config');
这将允许 ContLint 发现此寄存器的配置
从您内部提供 node_modules 文件夹.
默认情况下, Encoura 承诺林特 期望以下列格式发送一个承诺消息 :
[XXX-###]: Subject 其中XXX-QQ是一个工作项目 ID,例如, WEB-1
承诺信息也可能是git的标准合并承诺格式.
配置 ESLint 软件
要配置 ESLint 语录中,将以下内容添加到
eslint.config.js 财务报告和审定财务报表 package.json 文档。 此软件包支持 ESLint 10's
平面配置系统。 这个寄存器开发并验证了节点24上的配置.
5个上游软件包仍然声明排除ESLint 10的对等范围: Airbnb, Airbnb Base, Introduction, React, 和JSX的可访问性. 他们的原作 保留执行和规则名称。 堆放这些包 及其生产依赖性 出版的文物。 它只扩展他们的 ESLint 端元数据以包含 v10 和 Airbnb 的 React Hooks 对等元数据包含 v7.
这些是软件包本地兼容补丁,而不是上游声明
支助。 现有 @eslint/compat 适配器处理遗留规则 API.
消费者不需要对等重置或 --legacy-peer-deps。测试安装
与严格的同行进行包装的文物,比较完整的规则清单,以及
验证捆绑的执行文件是否匹配已安装的正本 .
捆绑的依赖性由这个包的锁文件所固定. 他们的更新要求
新建软件包并发布。 使用 npm ci 在释放之前。 删除每个
当其上游包支持这些对等版本时,兼容补丁.
const createConfig = require('@encoura/eslint-config');
module.exports = createConfig({
nextRootDir: __dirname,
resolverProject: ['tsconfig.json'],
tsconfigRootDir: __dirname,
});
对于后端(Nest.js)项目:
const createConfig = require('@encoura/eslint-config/nest');
module.exports = createConfig({
resolverProject: ['tsconfig.json'],
tsconfigRootDir: __dirname,
});
...
"lint-staged": {
...
"*.{js,jsx,ts,tsx}": "eslint",
...
},
...
中断更改 在4号
- ESLint配置消费者必须使用ESLint 10平方配置. 遗产
.eslintrcextends: ['@encoura/eslint-config']财务报告和审定财务报表extends: ['@encoura/eslint-config/nest']不再支持使用. 创建一个eslint.config.js文件,并给导出配置厂打电话. - 安装
eslint@^10直接消耗项目。 此软件包声明 ESLint 10 作为对等点,所以项目级别eslintCLI 对预期 主要版本. - 发表
jest.config.js与出口和杰斯特相关的依赖关系 已删除。 进口项目@encoura/eslint-config/jest.config应该拥有他们的杰斯特或维特配置 当地. - 这个共享的ESLint配置不再启用Jest特有测试林定. 测试文件仍然收到共享的 TypeScript/ React 覆盖, 但 Vitest 项目不再继承 Jest 规则.
eslint-plugin-disable不再捆绑。 共享配置无法启用 任意disable/*规则; 过渡性使用该软件包的项目应添加 他们自己的依赖.
配置马克下图
要配置 马克下图中,添加
跟着你 package.json 文档。 这将让 MarkdownLint 发现
此寄存器提供的配置 node_modules
文件夹,并检查您的 *.md 每次创建违规文件
一项新的承诺:
...
"lint-staged": {
...
"*.{md}": "markdownlint --config node_modules/@encoura/eslint-config/markdownlint.config.json",
...
},
...
配置预览器
要配置 更美丽创建一个 .prettierrc.js
包含以下内容的文件:
module.exports = require('@encoura/eslint-config/prettier.config');
这将允许 Pretier 发现此寄存器的配置
从您内部提供 node_modules 文件夹.
接下来,在您的 package.json 文件, 这样更美的会检查
每次您创建新任务时您的违法文件 :
...
"lint-staged": {
...
"*.{js,jsx,json,md,ts,tsx}": [
"prettier --write",
"git add"
]
...
},
...
配置类型脚本
要配置 类型脚本,添加以下内容:
给您的 tsconfig.json 文档。 这将允许 TypeScript 发现
从您内部配置此寄存器 node_modules 文件夹 :
...
"extends": "node_modules/@encoura/eslint-config/tsconfig.json",
...
依赖性升级说明
见 更新编号.md 安全修复、工具兼容性 变化、消费者迁移步骤和验证命令.
地方发展
npm 脚本
本地开发期间有多个 npm 脚本可供您使用 . 这里有一些更重要的:
| 脚本 | 说明 |
|---|---|
| npm 测试 | 运行所有验证检查 . |
| npm 运行测试:lint:js | Lint JavaScript文件与共享的ESLint配置. |
| npm 运行测试: lint: ts | Lint TypeScript文件与共享的ESLint配置. |
| npm 运行测试: lint: md | Lint Markdown文件与共享的MarkdownLint配置. |
| npm 运行测试: prettier | 使用 Pretier 检查格式 . |
| npm 运行测试: tsconfig | 验证共享类型脚本配置 . |
| npm 运行测试: 单位 | 运行单位测试 出口的配置工厂. |
释放进程
当你的代码更改准备好时,是时候发布一个新的补丁,小的,或者 主要释放。 维护者在合并时通常会挤压拉动请求,所以 PR 标题成为壁球承诺标题并成为补丁的真相来源 和小的释放检测.
-
制作公关(或标出您的公关草案可供审查).
-
选择一个公共安全公关标题,让语义释放知道是否应该 生成新补丁、 小补丁或主要释放:
- 如果你期望你的公关合并 导致一个新的 补丁 释放,
启动您的 PR 标题
fix:。 。 。 . - 如果你期望你的公关合并 导致一个新的 小声 释放,
启动您的 PR 标题
feat:。 。 。 . - 如果你期望你的公关合并 导致一个新的 主要 释放, 详情见下文3.
- 如果你期望你的公关合并 来跳过创建新的发布,
您可以启动您的 PR 标题
build:(用于建设变化),chore:(用于基本维修),docs:(供文件更新), 或者干脆不使用上述任何关键词前缀.
- 如果你期望你的公关合并 导致一个新的 补丁 释放,
启动您的 PR 标题
-
如果拉动请求创建新的主要版本发布, 字符串
BREAKING CHANGE:必须在至少一个承诺信息中包含 页脚 (单位:千美元)见文件(中文(简体) ) - 语义释放的 承诺分析器做 没有 使用 PR 标题 确定主要释放.您可以手动添加
BREAKING CHANGE:输入执行页脚 在您按下“ Morge Pult Request” /“ Squash and Merge” 后, 请在您的 PR (在 "可选扩展描述"字段. 或者,如果你正在合并 通过创建新的合并承诺,确保至少一个源 承诺的信息有BREAKING CHANGE:在它的脚下。 请注意: 完成这个任务,你可能需要与--no-verify要绕行的旗帜 承诺. -
一旦你的公关合并了 语义释放会把它捡起来启动 自动发布程序。 如果发现它应该创建释放 (基于以上),它会。 否则,它不会!