弹性/弹性配置
通过几个FF项目共享共同来源的代码服务级回波.
使用量
更新 Eslint 到版本 10 :
npm install eslint@^10
从您的工程中删除这些软件包 :
npm remove prettier \
@typescript-eslint/parser \
@typescript-eslint/eslint-plugin \
eslint-plugin-prefer-arrow-functions \
eslint-plugin-unused-imports \
eslint-config-prettier \
eslint-plugin-prettier \
eslint-plugin-react \
eslint-plugin-unicorn
安装软件包 :
# npm
npm install -D @flexifin/eslint-config
# yarn
yarn add -D @flexifin/eslint-config
# pnpm
pnpm add -D @flexifin/eslint-config
# bun
bun install -D @flexifin/eslint-config
# deno
deno install --dev npm:@flexifin/eslint-config
迁移到 FlexiFin 代码标准
重命名您的工程 root ESLint 配置文件 eslint.config.mjs 并修改内容以扩展 FlexiFin 预设 :
import flexiFin from '@flexifin/eslint-config';
export default flexiFin(
{
tsconfigRootDir: import.meta.dirname,
strict: true, // optional (enables type-aware lint: recommendedTypeChecked + stylisticTypeChecked)
nestSupport: true, // backend (NestJS, Swagger, Node plugin)
nextSupport: true, // frontend (Next.js, React, Storybook, Playwright, i18next, TanStack Query, a11y)
plugins: {
// Every plugin defaults to true EXCEPT `jest` (off — Vitest is the default test runner).
// Set false to opt out individually. Jest projects opt in:
// jest: true, vitest: false,
//
// Note: TypeScript support (parser + @typescript-eslint plugin) is always on — it is
// infrastructure, not a toggleable opinion. Override individual TS rules via userConfigs.
},
ignores: [
// ignore paths
],
},
// Rule overrides go in subsequent userConfig arguments — they apply at the end of the
// chain and override every preset rule. Add as many as you need; scope by `files` when needed.
{
rules: {
'unicorn/no-array-reduce': 'off',
},
}
);
真实世界的例子 :
import flexiFin from '@flexifin/eslint-config';
export default flexiFin(
{
nextSupport: true,
ignores: ['src/_api'],
},
{
rules: {
'unicorn/no-array-reduce': 'off',
},
},
{
files: ['**/*.spec.ts'],
rules: {
'@typescript-eslint/no-explicit-any': 'off',
},
}
);
将您的工程根 Pretier 配置文件重命名为 prettier.config.mjs 并修改内容以扩展 FlexiFin 预设 :
import flexiFin from '@flexifin/eslint-config/prettier';
export default flexiFin();
静默对等依赖性警告
一些捆绑的插件声明不应用每个工程的对等点: @darraghor/eslint-plugin-nestjs-typed 打开对等提示 class-validator (仅与雀巢JS应用有关), eslint-plugin-jsx-a11y 仍被钉入ESLint 9,以及 eslint-plugin-storybook 需要故事书 10.3.6+。 将以下内容添加到您的单曲根 package.json 安静的噪音:
{
"pnpm": {
"peerDependencyRules": {
"allowedVersions": {
"eslint-plugin-jsx-a11y>eslint": "10",
"eslint-plugin-storybook>storybook": ">=10.3.5"
},
"ignoreMissing": ["class-validator"]
}
}
}
NestJS 应用程序已经使用 class-validator 在运行时间,所以 ignoreMissing 条目只包含前端 / 非后端软件包的事务 – 保持其单列全宽,无论项目类型如何,警告都会消失.
批准土建脚本(unrs-resolver ),运行 pnpm approve-builds 一次 一次吗.
贡献者
自动更新 自动