ESLint 配置
ESLint静态分析您的代码以快速发现问题. 它包含在大多数文本编辑器中 你可以运行 ESLint 作为您持续集成管道的一部分。 - https://eslint.org/ (中文(简体) )
这是共享的 ESLint 配置 博埃林格·伊格尔海姆 代码样式.
使用量
安装软件包
npm install --save-dev @boehringer-ingelheim/eslint-config
添加配置
创建或更新 eslint.config.mjs (单位:千美元)eslint.config.cjs 如果偏爱commonjs)文件,也可以在您的工程根目录中相应使用.
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict
)
扩展或覆盖配置
不建议这样做,因为目标是在所有项目中都有类似的代码样式,但是如果出于某种原因需要添加或改变配置,则可以采取以下方式: 设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计设计,设计,设计,设计,设计,设计,设计,设计,设计,设计,设计
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict,
{
rules: {
'no-empty-function': 'off',
},
}
);
boehringer.includeIgnoreFile()
这个 includeIgnoreFile 函数允许您包含 .gitignore 使用相对路径的 ESLint 配置中的文件.
这是由ESLint(英语:S忽略文件) (中文(简体) ).
建议使用此功能,以确保您 .gitignore 文件已适当包含在您的 ESLint 设置中.
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.includeIgnoreFile(), // default value '.gitignore'
boehringer.configs.strict,
);
或者,如果你有不同的路径 .gitignore 文件 :
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.includeIgnoreFile('./backend/.gitignore'),
boehringer.includeIgnoreFile('./frontend/.gitignore'),
boehringer.configs.strict,
);
更多信息 : ESLint - 配置文件
运行
npx eslint .
共享配置
与标准/推荐的ESLint配置不同的意见选项.
基础
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.base
)
这种共享的ESLint配置是为遵循现代JavaScript标准的TypeScript项目而设置的. 它使用TypeScript(ES2022)的最新版本,并扩展了几个插件和建议的规则来强制实施最佳做法并捕捉潜在的出错.
在此配置中使用以下插件:
此外 eslint-plugin-perfectionist 用于自动解决排序问题.
此配置还设置了 TypeScript 解析器 @typescript-eslint/parser 财务报告和审定财务报表 eslint-import-resolver-typescript。 。 。 .
当地
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.base,
boehringer.configs.local
);
这个共享的 ESLint 配置可以配置或禁用一些规则, 以便本地更好的性能 。 在帮助下 is-ci 这些配置仅适用于CI管道外的环境.
严格
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict
);
此共享的 ESLint 配置扩展 基础配置 ,并从打字-slint插件中添加额外的严格林入规则。 这些严格的规则旨在实施高标准的代码质量,并改进代码的可维护性.
反应
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict,
boehringer.configs.react
);
这个共享的 ESLint 配置是专门为 反应 工程,并扩展 基础配置它使用浏览器环境,包括下列插件的建议配置:
eslint-plugin-jsx-a11yeslint-plugin-reacteslint-plugin-react-hookseslint-plugin-react-refresh(有规则严重性)warn(中文(简体) )
配置设置了若干自定义规则,包括 @typescript-eslint/no-restricted-types 财务报告和审定财务报表 @typescript-eslint/consistent-type-definitions,以及组织和格式化进口报表的规则.
此外,限制使用enum no-restricted-syntax。 。 。 .
下一个.js
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict,
boehringer.configs.nextjs
);
这个共享的 ESLint 配置是专门为 下一个.js 项目。 它延伸 反应配置 并包括 @next/eslint-plugin-next 带有推荐和 core-web-vital 规则设定。 配置也会调整规则 react-refresh/only-export-components 与 Next.js 兼容.
剧作家
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict,
boehringer.configs.playwright
);
仅用于特定文件:
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict,
{
files: ['src/**/*.test.{ts,tsx}'],
...boehringer.configs.playwright[0],
},
);
这个共享的ESLint配置旨在与Playwright一起编写测试时执行最佳做法和建议. 它延伸 eslint-plugin-playwright 配置并添加以下规则:
playwright/prefer-to-be: 强制使用.toBe()改为.toEqual()当测试平等.playwright/prefer-to-have-length: 强制使用.toHaveLength()改为.toEqual(n)当测试对象的长度时.playwright/require-top-level-describe: 要求将测试组织到顶层describe()块.
(实验)命名公约
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict,
// possibly other configs,
boehringer.configs.experimentalNamingConvention
);
这种共享的ESLint配置旨在强制实施一些命名惯例. 它使用 @typescript-eslint/naming-convention 执行命名公约的规则。 强制执行的公约可见于 配置/命名-公约js
较初步残疾
import boehringer from '@boehringer-ingelheim/eslint-config';
import prettier from 'eslint-plugin-prettier/recommended';
import { defineConfig } from 'eslint/config';
export default defineConfig(
boehringer.configs.strict,
// Following needs eslint-plugin-prettier to be installed as described by https://github.com/prettier/eslint-plugin-prettier
// Should be second to last
prettier,
// Should be last
boehringer.configs.prettierDisable,
);
这个共享的 ESLint 配置是围绕 eslint-config-disable,用于关闭所有不必要的或可能与Pretier相冲突的规则。 这种包装可重复使用一些规则,在我们使用与Prettier兼容的规则的具体选项时,可以使用我们共享的配置(参见: 特别规则) (中文(简体) ). 重新启用以下规则:
curly使用(默认)选项“全部”: 对所有控制语句执行一致的括号样式no-confusing-arrow与允许的Parensfalse只有一个小帕拉姆true: 断开箭头函数,它们可以与比较相混淆.
已知问题
分析错误
ESLint可能对一些文件(甚至对于它自己的eslint.config.js)抛出以下错误之一:
ESLint was configured to run ... However, that TSConfig does not / none of those TSConfigs include this file。 。 。 .... was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject
造成这一错误的原因是将各自文件纳入ESLint的范围,而不是TypeScript的范围. 欲了解更多有关此错误的信息及更多如何解决该错误的建议,您可以查看 排字失败。 。 。 .
我们的建议是保持对这些文件的排入意识.
解决方案1
包含 . (c|m)?js 文件在您的主 tsconfig.json 中 :
{
"include": [
// your existing includes
"*.*js", // this will include all .js, .cjs, .mjs files and similar in your project root
"*.ts", // this will include all .ts files and similar in your project root
// Add all other files/folders in which this error occurs
]
}
解决方案2
你可以用新车 allowDefaultProject 选项,这与我们的 projectService 配置数字 :
import boehringer from '@boehringer-ingelheim/eslint-config';
import { defineConfig } from 'eslint/config';
export default defineConfig(
// other configs,
{
languageOptions: {
parserOptions: {
projectService: {
allowDefaultProject: [
'*.*js',
'.*.*js',
],
// defaultProject can be used to specify separate tsconfig options for "out-of-project" files included by allowDefaultProject
// defaultProject: 'tsconfig.eslint.json',
},
},
},
},
)
地方发展
安装依赖关系
npm install
测试
npm test
维修
当遇到模糊错误或问题时,此命令可能有用 。 它清除并重建了您的项目的依赖性.
npm run repair
释放
[大
不支持确保一致性和安全性的人工发布,见: https://docs.npmjs.com/ 受托出版商
通过 GitHub 动作自动发布 语义释放。 。 。 . 它会按照常规承诺来撞倒版本,将软件包发布到npm并发布到GitHub.
npm run release
路线图
- 共享配置:角
- 共享配置:节点.js
- 测试案例
- " (中文(简体) )平调" 配置
显示您的支持
如果这个计划能帮助你的话,就给你一个!
许可证
版权 2026 博埃林格·伊格尔海姆。 。 。 .
这个项目是 麻省理工学院 有执照.
资源
- https://eslint.org/ (中文(简体) )
- https://typescript-eslint.io/ (英语)
- https://react-typescript-cheatsheet.netlify.app/ 页面存档备份,存于互联网档案馆
- https://prettier.io/ 互联网档案馆的存檔,存档日期2013-12-02
- https://conventionalcommitts.org/en/v1.0.0 (英语)
- https://semantic-release.gitbook.io/ 页面存档备份,存于互联网档案馆
- https://semver.org/ (中文(简体) )