执行convert-tslint-to-eslint提示不支持,求解决方法
Angular 17下TSLint转ESLint报错:
convert-tslint-to-eslint schematic不再支持的解决办法 问题背景
执行ng add @angular-eslint/schematics成功后,运行ng g @angular-eslint/schematics:convert-tslint-to-eslint触发报错:
Error: The `convert-tslint-to-eslint` schematic is no longer supported. Please see https://github.com/angular-eslint/angular-eslint/blob/main/docs/MIGRATING_FROM_TSLINT.md
该报错提及的文档正是迁移时使用的指南,且三周前还能正常使用该schematic。环境信息:
Angular CLI: 17.0.7 Node: 18.13.0 Package Manager: npm 8.19.3 OS: darwin x64 Angular: 17.0.7 ... animations, cli, common, compiler, compiler-cli, core, forms ... language-service, localize, platform-browser ... platform-browser-dynamic, router Package Version --------------------------------------------------------- @angular-devkit/architect 0.1700.7 @angular-devkit/build-angular 17.0.7 @angular-devkit/core 17.0.7 @angular-devkit/schematics 17.0.7 @schematics/angular 17.0.7 rxjs 7.8.1 typescript 5.2.2 zone.js 0.14.2
问题原因
angular-eslint v17版本正式移除了convert-tslint-to-eslint这个转换schematic,而适配Angular 17的@angular-eslint/schematics默认就是v17版本,因此触发该报错。三周前你使用的应该是v16版本的angular-eslint,当时该schematic还未被移除。
可行解决办法
办法一:临时降级angular-eslint完成转换
- 卸载当前安装的angular-eslint依赖:
npm remove @angular-eslint/schematics @angular-eslint/eslint-plugin @angular-eslint/eslint-plugin-template @angular-eslint/template-parser
- 安装v16版本的schematics:
npm install --save-dev @angular-eslint/schematics@16
- 执行转换命令:
ng g @angular-eslint/schematics:convert-tslint-to-eslint
- 转换完成后,升级回v17版本的angular-eslint:
npm install --save-dev @angular-eslint/schematics@latest @angular-eslint/eslint-plugin@latest @angular-eslint/eslint-plugin-template@latest @angular-eslint/template-parser@latest
办法二:使用替代工具手动迁移
- 安装
tslint-to-eslint-config工具:
npm install --save-dev tslint-to-eslint-config
- 生成初始的ESLint配置文件:
npx tslint-to-eslint-config
- 手动调整配置适配Angular项目:
- 在生成的
.eslintrc.json中引入Angular ESLint插件和规则,示例配置片段:"plugins": ["@angular-eslint"], "extends": [ "eslint:recommended", "plugin:@angular-eslint/recommended", "plugin:@angular-eslint/template/process-inline-templates" ], "rules": { // 替换通用规则为Angular专属规则 "@angular-eslint/no-unused-vars": "error", "@angular-eslint/directive-selector": ["error", { "type": "attribute", "prefix": "app", "style": "camelCase" }], "@angular-eslint/component-selector": ["error", { "type": "element", "prefix": "app", "style": "kebab-case" }] }
- 在生成的
- 移除TSLint相关依赖和文件:
npm remove tslint codelyzer rm tslint.json
内容的提问来源于stack exchange,提问作者Rod Nolan
相关产品推荐
相关产品推荐

