首页 > 解决方案 > 当我可以在 Node 中正常运行代码时,为什么 ESLint 会抱怨语法错误?“解析错误:意外的令牌=”

问题描述

我在 Stackoverflow 和 ESLint 文档中四处寻找答案,但大多数都不是我需要的,因为它们与 React 相关。

我使用 Node v14.17.0 和 ESLint v7.32.0 作为开发依赖项。我有以下一段代码。

class Service {
  constructor(){
    this.numbers = [1,2,3];
  }

  doAnotherThing = () => {
    console.log("I do the thing after 100 millis", this.numbers);
  }
  
  doSomething(){
    setTimeout(this.doAnotherThing, 100);
  }
}

let service = new Service();
service.doSomething();

只需运行即可正常node test.js运行应用程序,我将预期的结果打印到 STDOUT。

听起来不错,让我添加 ESLint 和 eslint 配置文件。

{
  "env": {
      "node": true,
      "mocha": true
  },
  "extends": "eslint:recommended",
  "parserOptions": {
      "ecmaVersion": "latest"
  },
}

现在当我在文件上运行 eslint 时运行,我收到以下错误。

/test.js
  2:10  error  Parsing error: Unexpected token =

请记住,我没有使用 Babel 或任何转译,所以我需要在配置中指定变量或其他内容吗?为什么会发生此错误,为什么安装可以@babel/eslint-parser解决问题?我根本没有使用 Babel。这是 ESLint 的限制还是我不明白的东西?

使用常规method(){}不起作用,也不是解决方案,因为我失去了this.number价值。见:https ://jsfiddle.net/0crpx6bv

环顾四周,我看到了很多 React 和 NONE Node.js 解决方案。这是没有 Babel 而不是 React 的普通 Node。

标签: javascriptnode.jsbabeljseslint

解决方案


推荐阅读