Alley 的 ESLint 配置
Alley的标准ESLint配置包括支持React,React Hooks,和TypeScript.
背景情况
此套件的杠杆 Airbnb的 ESLint 配置 财务报告和审定财务报表 Airbnb 字迹 与 Babel 和 Typescript 的 ESLint 解析器一起, 使得 JavaScript 林廷可以方便地配置项目, 其中也可能包括 React 和 TypeScript .
释放
此软件包遵循语义化版本并发布于 https://www.npmjs.com/ (中文(简体) )。 。 。 .
使用
首先从 npm 安装软件包 :
npm install --save-dev @alleyinteractive/eslint-config
接下来,从可用的ESLint配置中选择一个配置.
此套件会导出四个ESLint配置以供使用.
@alleyinteractive/eslint-config- 支持React的默认配置.@alleyinteractive/eslint-config/base- 基础配置类似于Airbnb的基础配置而不支持React插件.@alleyinteractive/eslint-config/typescript- 不支持反应插件的打字支持.@alleyinteractive/eslint-config/typescript-react- 打字和反应支持.
然后创建一个 .eslintrc.json 扩展配置的文件 :
{
"extends": ["@alleyinteractive/eslint-config"]
}
最后,添加 lint 命令为您 package.json数字 :
{
"scripts": {
"lint": "eslint --ext .ts,.tsx,.js,.jsx .",
"lint:fix": "eslint --ext .ts,.tsx,.js,.jsx --fix ."
}
}
如果您正在用 ESLint 网络包导入解析器解析模块, 您需要添加 eslint-import-resolver-webpack 软件包和设置配置 :
npm install --save-dev eslint-import-resolver-webpack
您还需要在
项目 .eslintrc.json 文件 :
"settings": {
"import/resolver": "webpack"
},
类型脚本和 Monorepo 配置
类型脚本
对于 TypeScript 项目, 您需要明确包含您想要插入的文件 tsconfig.json 文档。 这样做的一种方法是扩展“tsconfig.json”文件的基础,并为ESLint提供具体的配置.
- 创建一个
tsconfig.eslint.json扩展基数的文件tsconfig.json文档. - 添加数据
allowImportingTsExtensions财务报告和审定财务报表noEmit编译器选项compilerOptions对象,因为此配置不是用于编译 TypeScript . - 将您想要插入的文件添加到
include阵列.
实例 tsconfig.eslint.json 文件 :
{
"extends": "./tsconfig.json",
"compilerOptions": {
"allowImportingTsExtensions": true,
"noEmit": true,
},
"include": [
"../jest.config.js",
"../config/webpack.config.ts",
"../utils",
"../index.ts",
"../.eslintrc.js",
"../utils/index.test.ts",
"../utils/webpack.test.ts"
]
}
单曲
如果使用单列波,可能还会有附加步骤来设置打入的起伏.
此软件包使用 typescript-eslint 解析器和插件,支持 TypeScript .
ESPLint 需要一个 tsconfig.json 要显示在工程根中的文件和 typescript-eslint 需要寻找 tsconfig.json 用于 linting 的文件.
如果您有像 ESLint 这样的特定的 tsconfig 文件 tsconfig.eslint.json 您需要指定此文件的路径 parserOptions.project 设置 .eslintrc.json 文档.
"parserOptions": {
"project": "./tsconfig.eslint.json"
}
详情: https://typescript-eslint.io/linting/typed-linting/monorepos. 互联网档案馆的存檔,存档日期2013-12-22
在某些情况下,如果项目根中没有 tsconfig 文件, 您可能需要将您的 eslintrac 文件转换为 JavaScript 来通过 __dirname 页:1 parserOptions.tsconfigRootDir 设置.
// eslintrc.js
module.exports = {
extends: ['@alleyinteractive/eslint-config/typescript'],
+ parserOptions: {
+ project: `./tsconfig.eslint.json`,
+ tsconfigRootDir: __dirname,
+ },
};
从源
要在这个存储器上工作:
git clone [email protected]:alleyinteractive/alley-scripts.git
cd packages/eslint-config
npm ci
为了测试与另一个工程的配置, 您需要指出此软件包, 例如 :
{
"devDependences": {
"@alleyinteractive/eslint-config": "file:../path/to/alley-scripts/packages/eslint-config"
}
}
那就赶紧跑 npm install 和 npm 将链接到此文件夹, 您可以在您的更改中工作 .
更改日志
这个项目保持 更改日志。 。 。 .
发展进程
见上文关于从源头安装的指示。 社区欢迎拉动请求,并将予以考虑 供列入。 发布会遵循语义化版本,按需要进行发运.
捐款
见 我们的捐助准则 如何指导 为这个开源项目提供捐款.
项目结构
这是一个 npm 软件包, 发布到 https://www.npmjs.com/ (中文(简体) )。从属关系定义如下: package.json 编辑
ESLint 配置见于 index.js。 。 。 .
第三方依赖
第三方依赖性由 npm 可见于 package.json。本套装旨在减少
对通过管理依赖本身来使用它的项目的依赖负载.
相关努力
维护者
贡献者
谢谢大家 捐助者 对这个项目.
许可证
本项目根据以下规定获得许可证: GNU 公共许可证(GPL) 第2版 或后会.