![](/img/trans.png)
[英]How do I install the right version of @angular-eslint/schematic to match my angular-compiler?
[英]How do I need to setup angular-eslint for a protractor project?
我目前正在使用angular-eslint迁移到 eslint,因为 TSLint 已被弃用。 在它的文档中,我没有看到 protractor 的提及。 是否可以为 protractor 使用 default.eslintrc.json 配置,还是我也需要迁移它
ng g @angular-eslint/schematics:convert-tslint-to-eslint project-name-e2e
当前配置:angular.json(将实际项目名称替换为“项目名称”和“项目名称-e2e”)
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"project-name": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"aot": true,
"outputPath": "dist/...",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.app.json",
"assets": [
"src/favicon.ico",
"src/assets",
"src/Staticfile"
],
"styles": [
...
],
"stylePreprocessorOptions": {
"includePaths": [
"src/assets/scss"
]
},
"scripts": []
},
"configurations": {
"production": {
"budgets": [
{
"type": "anyComponentStyle",
"maximumWarning": "6kb"
}
],
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": {
"fonts": false
},
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true
},
"es5": {
"tsConfig": "src/tsconfig-es5.app.json"
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "project-name:build"
},
"configurations": {
"production": {
"browserTarget": "project-name:build:production"
},
"es5": {
"browserTarget": "project-name:build:es5"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "project-name:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/$.spec.json",
"karmaConfig": "src/karma.conf.js",
"styles": [
...
],
"scripts": [],
"assets": [
"src/favicon.ico",
"src/assets"
]
}
},
"lint": {
"builder": "@angular-eslint/builder:lint",
"options": {
"lintFilePatterns": [
"src/**/*.ts",
"src/**/*.html"
]
}
}
}
},
"project-name-e2e": {
"root": "e2e/",
"projectType": "application",
"architect": {
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js"
},
"configurations": {
"production": {
"devServerTarget": "..."
},
"dev": {
"protractorConfig": "e2e/..."
},
"devbsi": {
"protractorConfig": "e2e/..."
},
"test": {
"protractorConfig": "e2e/..."
},
"sit": {
"protractorConfig": "e2e/..."
}
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": "e2e/tsconfig.e2e.json",
"exclude": [
"**/node_modules/**"
]
}
}
}
}
},
"defaultProject": "project-name"
}
.eslintrc.json
{
"root": true,
"ignorePatterns": [
"projects/**/*"
],
"overrides": [
{
"files": [
"*.ts"
],
"parserOptions": {
"project": [
"tsconfig.json",
"e2e/tsconfig.json"
],
"createDefaultProgram": true
},
"extends": [
"plugin:@angular-eslint/ng-cli-compat",
"plugin:@angular-eslint/ng-cli-compat--formatting-add-on",
"plugin:@angular-eslint/template/process-inline-templates"
],
"rules": {
"@typescript-eslint/consistent-type-definitions": "error",
"@typescript-eslint/dot-notation": "off",
"@typescript-eslint/explicit-member-accessibility": [
"off",
{
"accessibility": "explicit"
}
],
"brace-style": [
"error",
"1tbs"
],
"id-blacklist": "off",
"id-match": "off",
"max-len": [
"error",
{
"code": 160
}
],
"no-underscore-dangle": "off"
}
},
{
"files": [
"*.html"
],
"extends": [
"plugin:@angular-eslint/template/recommended"
],
"rules": {}
}
]
}
我们也为此苦苦挣扎。 遵循迁移指南后,VS Code 在 protractor.conf.js 中抱怨
Parsing error: The keyword 'const' is reserved
我们通过将 env 配置添加到 angular 项目中的 .eslintrc.json 来修复此消息
{
...
"env": {
"browser": true,
"node": true,
"es6": true
},
...
}
从这里开始,一切似乎仍然按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.