报错
原因
ECMAScript modules(import/export) 是 es6 的语法。
根据 eslint 官方文档 Configure language options ,eslint 默认使用 es5 语法:
解决
要让 eslint 知道我在使用 es6 的 modules 语法。有下面几种方法:
-
设置 env 为 es6:
// .eslintrc.js: module.exports = { env: { es6: true, }, };
此时还是会报错,但是报错内容变了:
这是因为虽然 es modules 是 es6 的功能,但是 eslint 中的 env: es6 是不包含 modules 功能的:
根据报错内容的提示,将 parserOptions.sourceType 设为 modulemodule.exports = { env: { es6: true, }, parserOptions: { sourceType: "module", }, };
-
module.exports = { env: { es2016: true, // es2022:true, }, // env: es2016 ~ es2022 都包含 es modules,不需要再设置 sourceType:module 了 };
-
module.exports = { parserOptions: { ecmaVersion: "latest", sourceType: "module", }, };