环境 ESLint 配置
安装
- 安装配置的最新版本 :
npm install --save-dev @enonic/eslint-config
- 安装命令列出的每个软件包的正确版本:
npm info "@enonic/eslint-config@latest" peerDependencies
狦 别 需要插入 TypeScript, 您应该跳过此步骤( 见 香草配置) (中文(简体) ).
确保你输入所有相同的版本 @typescript-eslint/eslint-plugin 财务报告和审定财务报表 @typescript-eslint/parser 软件包.
使用量
.eslintrc.json
{
"extends": "@enonic/eslint-config",
"overrides": [
{
"files": ["*.ts", "*.tsx"],
"parserOptions": {
"project": "./tsconfig.json"
}
}
]
}
有些规则要求 parserServices 因此,将产生 project 必须明确规定财产。 注意, TypeScript 配置被 *.ts编号 :*.tsx 范围.
配置
除此以外 @enonic/eslint-config,这个软件包包含另外四个配置:
独立
@enonic/eslint-config/vanilla应替换 JavaScript 中默认配置.@enonic/eslint-config/typescript应当替换 TypeScript 工程中的默认配置.
帮助者
@enonic/eslint-config/browser为 linting 浏览器文件(资产)添加了额外的配置.@enonic/eslint-config/xp添加了 XP 全局变量, 并允许给 XP 使用的文件 .
帮助者必须结合默认,香草,或打字符配置.
XP 和浏览器
您的项目可能同时包含服务器端和客户端端文件 。 在这种情况下,为了防止对不适当的文件使用特定配置,使用超接可能是合理的:
.eslintrc.json
{
"extends": "@enonic/eslint-config",
"overrides": [
+ {
+ "files": [
+ "src/main/resources/assets/*.js",
+ "src/main/resources/assets/*.ts"
+ ],
+ "extends": "@enonic/eslint-config/browser"
+ },
+ {
+ "files": [
+ "src/main/resources/lib/*.js",
+ "src/main/resources/lib/*.ts"
+ ],
+ "extends": "@enonic/eslint-config/xp"
+ },
{
"files": ["*.ts", "*.tsx"],
"parserOptions": {
"project": "./tsconfig.json"
}
}
]
}
香草 Java 脚本
默认配置将同时插入TS和JS文件. 如果您的项目不使用 TypeScript, 那么 @enonic/eslint-config/vanilla 可取而代之使用配置. project 不得指定财产。 也不得安装与TS有关的其他同伴依赖.
.eslintrc.json
{
- "extends": "@enonic/eslint-config",
+ "extends": "@enonic/eslint-config/vanilla",
"overrides": [
- {
- "files": ["*.ts", "*.tsx"],
- "parserOptions": {
- "project": "./tsconfig.json"
- }
- }
+ {
+ "files": ["src/main/resources/assets/*.js"],
+ "extends": "@enonic/eslint-config/browser"
+ },
+ {
+ "files": ["src/main/resources/lib/*.js"],
+ "extends": "@enonic/eslint-config/xp"
+ }
]
}
类型脚本
当使用类型脚本配置而不是默认配置时, project 属性必须移动到 parserOptions 于相相相根下. 如果您只插入 TypeScript 文件, 此配置应该比默认配置更可取 。 它将配置文件简化了一点.
.eslintrc.json
{
- "extends": "@enonic/eslint-config",
+ "extends": "@enonic/eslint-config/typescript",
+ "parserOptions": {
+ "project": "./tsconfig.json"
+ }
"overrides": [
- {
- "files": ["*.ts", "*.tsx"],
- "parserOptions": {
- "project": "./tsconfig.json"
- }
- }
+ {
+ "files": ["src/main/resources/assets/*.ts"],
+ "extends": "@enonic/eslint-config/browser"
+ },
+ {
+ "files": ["src/main/resources/lib/*.ts"],
+ "extends": "@enonic/eslint-config/xp"
+ }
]
}