@ cratis/ eslint- config
共享 ESLint 平面配置 cratis 项目的预设.
两个观众,故意分开:
| 预设 | 对于 | 添加数 |
|---|---|---|
consumer | 实施的项目 以 Cratis(其他产品、应用软件) | 房屋类型/反应卫生+ for_* BDD 光谱放松 |
internal | 克拉提人组织 产品重置 (弧,构件,基础, | 里面的东西 consumer 加号 克拉提斯麻省理工学院执照持有人规则 |
牌照头是克拉提斯的 撰写 担心,所以它只生活在 internal ——消费者从不继承.
安装
yarn add -D @cratis/eslint-config eslint
eslint 和 TypeScript 程序 API 是对等依赖。 解析器, TypeScript 规则, 以及这些预设的飞船所使用的其他插件可以转接.
类型脚本 7
类型脚本 7.0 供应本地 tsc 编译器,但不是由打字-eslint要求的JavaScript编译器API. 使用 TypeScript 支持的并排设置数字 :
npm install -D @cratis/eslint-config eslint@latest \
'@typescript/native@npm:typescript@latest' \
'typescript@npm:@typescript/typescript6@latest'
该建筑仍然运行 TypeScript 7's tsc; 单独的相容软件包提供 lint 工具使用的 API 并命名其旧编译器可执行文件 tsc6。 。 。 .
反应规则
JSX语法和参考文献由TypeScript分解和规则处理. 这些预设无法启用任何 react/* 规则,不再安装或注册 eslint-plugin-react 含蓄的 这避免了它不相容的ESLint 10对等依赖.
如果自定义配置允许附加针对特定反应的规则,则在配置中明确注册一个相容的插件. 遗产 react/display-name 财务报告和审定财务报表 react/react-in-jsx-scope 条目继续被禁用,以及 settings.react.version 遗 物 detect,所以提供自己反应插件的消费者会保留这些默认.
使用 — 一个基于 Cratis 的项目
// eslint.config.mjs
import cratis from '@cratis/eslint-config';
export default [
...cratis.configs.consumer,
// …your project-specific rules layered on top
];
如果您消费了 Cratis Arc 代用或 Cratis 组件, 也可以组成产品规则包 :
import cratis from '@cratis/eslint-config';
import arc from '@cratis/eslint-plugin-arc';
import components from '@cratis/eslint-plugin-components';
export default [
...cratis.configs.consumer,
...arc.configs.recommended, // skips generated proxies, MVVM view-model discipline
...components.configs.recommended, // no raw primereact dialogs, subpath-only imports
// …your project rules
];
使用- Cratis 产品回波
// eslint.config.mjs
import cratis from '@cratis/eslint-config';
export default cratis.configs.internal;
构件
configs.base (卫生+忽略)和 configs.specs (单位:千美元)for_* 放松)也会被导出,这样你就可以自行编曲预设. 已命名的出口 base, (中文(简体) ), specs, (中文(简体) ), consumer, (中文(简体) ), internal,以及 ignores 也可查阅.
校验已公布的对等图
从寄存器根, 运行 :
node Source/ESLintConfig/scripts/verify-peer-graph.mjs
检查包了这个工作空间 然后把柏油球安装到一个孤立的消费者身上 .ai-work/,使用最新的ESLint和TypeScript/编译器-API包. 它需要严格的同龄人解决办法和一棵干净的完整依赖树,然后核查与JSX和有代表性的消费者/内部规则相矛盾的包装预设. CI除了预设的规格外还要运行此功能;工作空间起动不得隐藏已发布的已破损的依赖图.