如何修复 jshint 错误预期 '(' 在 '(' 之前。(expected_a_before_b)

Posted

技术标签:

【中文标题】如何修复 jshint 错误预期 \'(\' 在 \'(\' 之前。(expected_a_before_b)【英文标题】: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。谢谢。 【参考方案1】:

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

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

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

【讨论】:

以上是关于如何修复 jshint 错误预期 '(' 在 '(' 之前。(expected_a_before_b)的主要内容,如果未能解决你的问题,请参考以下文章

如何修复“错误:预期在 'ProxyZone' 中运行,但未找到。”在摩卡测试?

如何修复错误:断言错误:应该在更新模式下运行 [预期 => 假 == 真 <= 实际]

如何修复“在预期以下情况之一时遇到符号“=”:plsql中的错误

如何修复渲染 SLS 失败:Jinja 语法错误:预期令牌',',得到':'?

如何修复预期值:“1”接收到的数组:[“COUNT (*)”:“1”] 在带有 jest 框架的 TypeORM 中出现错误

如何忽略 '$' 未定义 JsHint 错误。 (Visual Studio 2010 JsHint 扩展)