【问题标题】:How to fix jshint error Expected '(' before '('. (expected_a_before_b)如何修复 jshint 错误预期 '(' 在 '(' 之前。(expected_a_before_b)
【发布时间】:2020-11-16 22:52:26
【问题描述】:

这里是javascript代码

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch()
  const page = await browser.newPage()
  await page.goto('https://www.google.com/')
  const title = await page.title()
  console.log(title)
  await browser.close()
})()

.vscode 文件夹中的我的 settings.json

{
    "jshint.options": {
      "esversion": 8
    }
  }

我正在使用 JSLint,我的编辑器是 Visual Studio Code 1.47.2

这是我遇到的错误

Expected '(' before '('. (expected_a_before_b) jslint(expected_a_before_b) [3,8]

这个 jshint 错误的原因可能是什么?

【问题讨论】:

  • 回过头来看,Visual Studio Code 中有 jshint 提示选项。您使用的是 JSLint 还是 JSHint?如果是JSHint,可以试试文件顶部的/*jshint esversion: 8, asi: true */吗?
  • 它是 JSHint。我已经相应地更新了我的问题。尝试将 sn-p 放在代码之上,但没有奏效。
  • 将 JSHint 加载到 VS Code 中并使用该 sn-p 打开文件最初会给我分号错误,一旦我将选项更改为 "jshint.options": {"esversion": 8, "asi": true},就什么也没有了。所以 JSHint 似乎可以工作。
  • 但是,如果我将 JSLint 扩展加载到 VS Code 中,我确实会收到您报告的错误。我认为您需要在 VS Code 中切换到 JSHint(并相应地调整其选项),或者我的原始答案是“正确”; JSLint 还不支持async/await,它被await 关键字弄糊涂了。
  • 我在 Visual Studio Code 中安装了 JSlint、JShint 和 ESlint。我已禁用 JSlint 和 Eslint 并重新加载。现在它适用于您的代码 sn-p。谢谢。

标签: javascript visual-studio-code jslint jshint


【解决方案1】:

看起来是因为 JSLint 不支持async/await

这里是 an issue that was raiseda patch submitted to fix it,但它还没有被合并,而且奇怪的是,当 bug 的作者决定“我不再关心”时,这个 bug 被关闭了——奇怪的 b/c Evgeny 是通常在 JSLint 邮件列表中非常活跃且很有帮助。

我认为您的选择是尝试该补丁,而不是使用 async/await,或者,不幸的是,至少目前,更改 linter。您还可以在 JSLint 提交一个新问题,该问题基本上重复了早先没有解决而关闭的问题。

【讨论】:

    猜你喜欢
    • 2013-12-16
    • 2020-01-21
    • 2012-10-04
    • 1970-01-01
    • 2020-12-05
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多