Cuando trato de ejecutar el comando ng lint --fix cli arroja este error:
An unhandled exception occurred: Cannot find builder "@angular-devkit/build-angular:tslint". See "C:\Users\MOE89A~1.ZAR\AppData\Local\Temp\ng-Ijc3an\angular-errors.log" for further details. Mi configuración de pelusa en angular.json :
"lint": { "builder": "@angular-devkit/build-angular:tslint", "options": { "tsConfig": [ "projects/wepod-app/tsconfig.app.json", "projects/wepod-app/tsconfig.spec.json", "projects/wepod-app/e2e/tsconfig.json" ], "exclude": [ "**/node_modules/**" ] } }, Mi package.json :
{ "name": "wepod-clients", "version": "3.2.3", "scripts": { "ng": "ng", "start": "node patch.js && ng serve", "build": "node patch.js && node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng run wepod-app:app-shell:production && ng run wepod-app:auth-standalone:production", "server": "npm run build && http-server -p 9090 -c-1 dist", "test": "ng test", "lint": "ng lint --fix", "e2e": "ng e2e", "postinstall": "node patch.js && ngcc", "postbuild": "node post-build.js", "prepare": "husky install", "build-latest": "git pull origin production && npm run build" }, "private": true, "dependencies": { "@angular/animations": "^13.0.0", "@angular/cdk": "^13.0.0", "@angular/cli": "^13.0.1", "@angular/common": "^13.0.0", "@angular/compiler": "^13.0.0", "@angular/core": "^13.0.0", "@angular/forms": "^13.0.0", "@angular/localize": "^13.0.0", "@angular/platform-browser": "^13.0.0", "@angular/platform-browser-dynamic": "^13.0.0", "@angular/platform-server": "^13.0.0", "@angular/router": "^13.0.0", "@angular/service-worker": "^13.0.0", "@types/video.js": "^7.3.27", "animate.css": "^4.1.1", "assert": "^2.0.0", "bowser": "^2.11.0", "buffer": "^6.0.3", "bundle-loader": "^0.5.6", "compare-version": "^0.1.2", "constants-browserify": "^1.0.0", "crypto-browserify": "^3.12.0", "crypto-js": "^4.1.1", "d3": "^6.5.0", "hammerjs": "^2.0.8", "https-browserify": "^1.0.0", "jalali-moment": "^3.3.10", "lottie-web": "^5.7.13", "lzutf8": "^0.6.0", "net": "^1.0.2", "ng-gallery": "^5.1.1", "ng2-jalali-date-picker": "^2.4.2", "ngx-device-detector": "^1.5.2", "ngx-doughnut-chart": "0.0.4", "ngx-infinite-scroll": "^8.0.2", "ngx-lottie": "^7.0.4", "ngx-owl-carousel-o": "^3.1.1", "ngx-skeleton-loader": "^2.10.1", "ngx-toastr": "^12.1.0", "os-browserify": "^0.3.0", "podchat-browser": "^10.14.13", "rxjs": "^6.6.7", "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", "tls": "0.0.1", "tslib": "^2.0.0", "uuid": "^8.3.2", "video.js": "^7.15.4", "videojs-record": "^4.5.0", "zone.js": "~0.11.4" }, "devDependencies": { "@angular-devkit/build-angular": "^13.0.1", "@angular-devkit/core": "^13.0.1", "@angular/compiler-cli": "^13.0.0", "@angular/language-service": "^13.0.0", "@egjs/hammerjs": "^2.0.17", "@types/hammerjs": "^2.0.40", "@types/jasmine": "~3.6.0", "@types/jasminewd2": "^2.0.10", "@types/node": "^12.20.36", "codelyzer": "^6.0.0", "colors": "^1.4.0", "git-tag-version": "^1.3.1", "gulp": "^4.0.2", "gulp-gzip": "^1.4.2", "http-server": "^14.0.0", "husky": "^7.0.4", "jasmine-core": "~3.6.0", "jasmine-spec-reporter": "~5.0.0", "karma": "^6.3.7", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "^2.1.0", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.5.0", "protractor": "^7.0.0", "ts-node": "^8.10.2", "tslint": "^6.1.3", "typescript": "4.4.4", "zip-dir": "^2.0.0" }, "browser": { "fs": false, "path": false, "os": false } }A partir de v13, angular ya no usa tslint debido a la obsolescencia .
Ejecute ng add @angular-eslint/schematics para agregar eslint a su aplicación.
Utilizará tslint-to-eslint-config para migrarlo a eslint automáticamente.
Generará un archivo .eslintrc.json y migrará tslint.json a él.
No se necesita hacer nada más.
¡@MahdiJoon es una gran respuesta! Creo que funcionará para la mayoría de los proyectos.
Estoy agregando esta respuesta para los desarrolladores que ya eliminaron tslint manualmente, como lo hice yo.
Si hiciste eso, como yo, entonces:
ng add @angular-eslint/schematics para instalar eslintng g @angular-eslint/schematics:convert-tslint-to-eslint <project-name> para migrar la configuración de tslint.json a .eslintrc.jsone2e )