@fluidframework/slint-config-fluid (英语)
这个软件包包含一个共享的ESLint配置,所有软件包在"流体框架 repo"中使用.
所需资源
- ESLint 9 (英语) (建议),或
- ESLint 8.21+ (英语) 与
ESLINT_USE_FLAT_CONFIG=true环境变量
这个包只使用ESLint的平面配置格式. 遗产 .eslintrc 不支持格式.
使用量
导入想要的配置并将其扩散到您的 eslint.config.mts数字 :
// eslint.config.mts
import { strict } from "@fluidframework/eslint-config-fluid";
export default [...strict];
包根导出标准平面和服务器配置 。 对于特殊案例,也有明确的子路径:
@fluidframework/eslint-config-fluid/flat.mts 财务报告和审定财务报表 @fluidframework/eslint-config-fluid/server.mts。 。 。 .
ESLint 8.21+ (英语). 用户
如果您使用ESLint 8.21-8.x,您必须通过环境变量启用平面配置支持:
ESLINT_USE_FLAT_CONFIG=true eslint .
或者在你的 npm 脚本中:
{
"scripts": {
"lint": "cross-env ESLINT_USE_FLAT_CONFIG=true eslint ."
}
}
说明: ESLint 8.x平面配置支持是实验性的. 我们建议升级到ESLint 9,以获得最佳经验.
模块结构
平面配置为可维护性模块结构:
eslint-config-fluid/
├── flat.mts # Main entry point (~30 lines)
├── library/
│ ├── constants.mts # Shared constants (ignores, file patterns, import restrictions)
│ ├── settings.mts # Plugin settings (import-x, jsdoc)
│ ├── rules/
│ │ ├── base.mts # Base rules from eslint:recommended, typescript-eslint, etc.
│ │ ├── recommended.mts # Rules for recommended config (unicorn, type safety)
│ │ └── strict.mts # Rules for strict config (jsdoc requirements, explicit access)
│ └── configs/
│ ├── base.mts # Base config builder with all plugins
│ ├── overrides.mts # Shared overrides (test files, React, JS files)
│ └── factory.mts # Config factory functions
这一结构确保:
- 单个文件不超过~250行
- 常数和设置的单一真理源
- 每个单元都有一个单一的责任
- 易于理解和维护
配置
建议
Fluid Framework 库中使用的标准名为配置.
import { recommended } from "@fluidframework/eslint-config-fluid";
export default [...recommended];
建议存储库中的所有图书馆使用此配置,尽管 严格 只要合理,就倾向于配置.
严格
Fluid框架库中最严格的配置 。 建议实施最高质量标准.
import { strict } from "@fluidframework/eslint-config-fluid";
export default [...strict];
鼓励公众面对API的图书馆使用这种配置,鼓励将这种配置用作外部实例(例如: fluidframework.com) (中文(简体) ).
严格比欧姆
一种"严格"配置的版本,可以使Biome"推荐"所覆盖的规则被禁用. 用于同时使用ESLint和Biome的项目.
import { strictBiome } from "@fluidframework/eslint-config-fluid";
export default [...strictBiome];
修改插件配置
如果您想要更改共享的 lint 配置( 即此软件包), 您需要做以下操作 :
- 使相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.
- 发布预发包.
- 更新核心软件包,以使用预放出lint配置.
更新 Lint 配置( 第 1步) 时, 运行 npm run build 并做出相应的改变.
跟踪信息配置随时间变化
当我们改变我们的设计时 经常会出现的一个问题是, “什么改变了?” 即使我们 除了升级道具,不要做其他任何更改,因为依赖升级可能包括一条新规则.
ESLint提供了打印适用于文件的配置的方法(--print-config因此,我们利用这种能力
打印应用配置为 JSON 文件。 当我们改变配置时, 我们可以再次打印出配置并获得
diff作为公关的一部分来审查-- 就像我们对代码更改的API报告一样.
脚本
| 脚本 | 说明 |
|---|---|
build | npm run print-config |
build:readme:disabled | markdown-magic --files "**/*.md" |
clean | rimraf --glob dist "**/*.build.log" |
format | npm run prettier:fix |
install-no-frozen | pnpm --config.minimum-release-age=10080 i --no-frozen-lockfile |
prettier | prettier --check . |
prettier:fix | prettier --write . |
print-configs | tsx scripts/print-configs.ts printed-configs |
test | echo TODO: add tests in @fluidframework/eslint-config-fluid |
test:mocha | mocha "src/test/**/*.test.mts" |
见 GitHub 图像 需要更多关于流体框架和内部软件包的细节.