配置typescript-eslint遇SyntaxError:无法在模块外使用import语句
解决ESLint+typescript-eslint配置中"Cannot use import statement outside a module"错误
这个错误的核心原因是:你用了ES模块的import/export语法编写ESLint配置,但Node.js默认把.js后缀的文件识别为CommonJS模块,无法解析ES模块语法。
下面是三种可行的解决办法:
改配置文件后缀为
.mjs
把你的ESLint配置文件名从eslint.config.js改成eslint.config.mjs。Node.js会自动将.mjs后缀的文件当作ES模块处理,不需要额外修改其他配置。在
package.json中声明模块类型
要是不想改文件名,就在项目根目录的package.json里添加"type": "module"字段:{ "type": "module" }注意:这个设置会让项目中所有
.js文件都被当作ES模块解析,确保项目里其他.js文件也适配ES模块规范再用这个方法。改用CommonJS语法写配置
如果你更习惯CommonJS的写法,直接把配置改成下面这样就行:const eslint = require('@eslint/js'); const tseslint = require('typescript-eslint'); module.exports = tseslint.config( eslint.configs.recommended, ...tseslint.configs.recommended );
内容的提问来源于stack exchange,提问作者Timofey Goncharov
相关产品推荐
相关产品推荐

