Angular16项目加载@angular-eslint插件失败:Unexpected token '??='
解决Angular 16项目ESLint加载插件时的Unexpected token '??='错误
核心原因
??=是ES2020引入的空值赋值操作符,出现该错误的核心原因是运行ESLint的Node.js版本不支持该语法,或者依赖包版本与Angular 16/Node.js版本不兼容。Angular 16对Node.js的最低要求是16.14.0+或18.10.0+,低于此版本的Node环境无法解析该语法。
排查与修复步骤
1. 检查并升级Node.js版本
执行终端命令查看当前Node版本:
node -v
如果版本低于16.14.0,直接升级到Angular 16兼容的Node.js版本(推荐18.x LTS长期支持版)。
2. 对齐@angular-eslint套件版本
Angular 16必须搭配对应大版本的@angular-eslint工具包,确保所有@angular-eslint/开头的依赖版本为16.x:
- 打开
package.json,检查@angular-eslint/eslint-plugin、@angular-eslint/eslint-plugin-template、@angular-eslint/template-parser、@angular-eslint/schematics的版本是否为^16.0.0及以上 - 版本不一致时,执行命令统一升级:
npm install @angular-eslint/eslint-plugin@16 @angular-eslint/eslint-plugin-template@16 @angular-eslint/template-parser@16 @angular-eslint/schematics@16 --save-dev
3. 验证ESLint核心版本
Angular 16对应的@angular-eslint需要ESLint 8.x版本支持,检查package.json中eslint版本是否为^8.0.0,若版本过低则执行升级:
npm install eslint@8 --save-dev
4. 清理依赖缓存并重装
若上述操作后问题仍存在,清理缓存并重新安装依赖:
npm cache clean --force rm -rf node_modules package-lock.json npm install
5. 校验.eslintrc.json配置合法性
确保overrides段的插件配置符合Angular 16规范,示例配置如下:
{ "root": true, "ignorePatterns": ["projects/**/*"], "overrides": [ { "files": ["*.ts"], "extends": [ "eslint:recommended", "plugin:@angular-eslint/recommended", "plugin:@angular-eslint/template/process-inline-templates" ], "rules": {} }, { "files": ["*.html"], "extends": ["plugin:@angular-eslint/template/recommended"], "rules": {} } ] }
内容的提问来源于stack exchange,提问作者Alfred Musk
相关产品推荐
相关产品推荐

