ESLint禁用指令对JSON文件导入行无效,求解决方案
解决建议
1. 升级ESLint及解析器版本
导入断言(assert { type: 'json' })属于较新的ES语法,ESLint默认的Espree解析器在v9.0.0及以上版本才支持该语法。如果你的ESLint版本低于v9,请执行升级:
npm install eslint@latest --save-dev
2. 配置Node.js环境版本
在.eslintrc的env中指定具体的Node.js版本(需为支持导入断言的v17.1及以上),让ESLint准确识别当前环境支持的语法:
{ "env": { "es6": true, "node": "18" // 或更高版本如20 }, "extends": [ "prettier" ], "parserOptions": { "ecmaVersion": "latest", "sourceType": "module" } }
3. 临时规避方案(无法升级版本时)
如果暂时无法升级ESLint,可以改用Node.js的fs模块读取JSON文件,绕过导入断言的语法问题:
import fs from 'fs'; import path from 'path'; const pkg = JSON.parse(fs.readFileSync(path.resolve('../../package.json'), 'utf8'));
为什么eslint-disable注释无效?
因为报错是解析阶段错误,ESLint在解析代码时无法识别assert语法,直接抛出错误,还没到执行lint规则的阶段,所以eslint-disable这类注释根本不会被处理。必须先解决解析器对语法的支持问题,才能让禁用注释生效。
内容的提问来源于stack exchange,提问作者Aviran
相关产品推荐
相关产品推荐

