React配置es2020后编译仍报BigInt is not defined如何解决
问题原因
这是ESLint校验规则抛出的错误,并非JS引擎/编译器真的不支持BigInt:你同时在package.json的eslintConfig字段和根目录.eslintrc.json中配置了ESLint规则,优先级冲突导致你设置的es2020环境未生效,ESLint无法识别BigInt为ES2020内置的全局变量。
解决步骤
- 第一步:删除
package.json中冗余的eslintConfig配置项,统一使用根目录的.eslintrc.json管理ESLint规则
删除的内容如下:
"eslintConfig": { "extends": "react-app" },
- 第二步:在
.eslintrc.json中显式声明BigInt为全局只读变量,避免识别失败
修改后的配置增加globals字段:
{ "env": { "browser": true, "es2020": true, "node": true }, "globals": { "BigInt": "readonly" }, "extends": [ "plugin:prettier/recommended", "eslint:recommended", "plugin:react/recommended" ], "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": 2020, "sourceType": "module" }, "plugins": [ "react" ], "rules": { } }
- 第三步:重启本地开发服务,可额外删除
node_modules/.cache目录清空缓存后再启动项目,即可解决该报错。
可选补充
如果修改后仍有编译报错,可将parserOptions中的ecmaVersion改为"latest",确保兼容所有新语法特性。
内容的提问来源于stack exchange,提问作者pdmoerman
相关产品推荐
相关产品推荐

