为什么 linting 失败并显示“Unexpected token”。关于“import.meta.url”?

问题描述 投票:0回答:2

我有以下 lint 配置...

{
  "extends": ["eslint:recommended", "google"],
  "parserOptions": {
    "ecmaVersion": 2020,
    "sourceType": "module"
  },
  "rules": {
    "require-jsdoc": 1
  },
  "env": {
    "es6": true
  }
}

以及以下代码...

const __dirname = path.dirname(new URL(import.meta.url).pathname);
                                           //^Error is...

但是当它起毛时我得到......

9:46  error  Parsing error: Unexpected token .

这是一段非常常见的代码,所以我很困惑。

更新

解决了...

"ignorePatterns": ["unclean.mjs", "node_modules"],

但我想要一个不必忽略整个文件的解决方案。

node.js eslint
2个回答
4
投票

这是一个语法错误,因为 ESLint 的默认解析器仅支持第 4 阶段提案,但 import.meta 目前是第 3 阶段。目前,您必须将解析器更改为“babel-eslint”或“@typescript-eslint/解析器”以便解析

import.meta

该短语是一个语法错误,因为

import
是 EcmaScript 中的关键字。因此
import.meta
if.foo
switch.foo
一样无效。


0
投票

eslint 7.2.0(2020 年 6 月)中添加了对 import.meta 的支持,但是为了使其正常工作,我必须编辑 .eslintrc.json 并将 ecmaVersion 从 2018 年更改为 2020 年。

© www.soinside.com 2019 - 2024. All rights reserved.