尝试在 Opera 的用户脚本中使用“const”时出现错误

问题描述

我可以将最新版本的 Chrome、Firefox 和 Edge (Chromium) 与 Tampermonkey 一起使用,并且它们都支持在我的用户脚本中使用 const。但是,对于带有 Tampermonkey 4.11.6120 的 Opera 73.0.3856.284,我收到一个错误,“eslint:null - 解析错误:关键字 'const' 被保留”。虽然我知道我可以使用 varlet,但我想知道是否存在导致此错误的特定原因。我的用户脚本是跨浏览器的,我希望是否有办法使用 const 而不会出现此错误。下面的图片只是我用 const 制作的一个用户脚本来显示错误

enter image description here

编辑:我用这个代码运行了一个测试用户脚本:

const x = 2;
alert(x);

并且警报给出了 2。因此,我怀疑代码运行良好,但这是 Tampermonkey 的内部错误。事实上,我坚信确实如此,因为我刚刚看到这个问题:https://github.com/Tampermonkey/tampermonkey/issues/1099

解决方法

您看到的只是 Tampermonkey 提供的浏览器内编辑器的 linting 错误,而不是 JavaScript 运行时错误。您的脚本在现代版本的 Opera 中应该可以正常工作;您可以放心地忽略该警告。

如果您不喜欢警告的外观,可以改用外部脚本编辑器,例如,使用:

// @require          file://C:/PATH_TO_FILE.user.js

在元数据块中,元数据块之后没有内容。改为在 PATH_TO_FILE.user.js 中编写代码。

如果尚未报告,您也可以在 Tampermonkey 的 github 上提出问题,要求修复浏览器内编辑器。

,

ESLint 设置为旧的 ECMAScript,尽管我在 Firefox 上默认安装了 TamperMonkey 4.11.6120 时没有收到该错误。
它可能特定于 Opera 安装。

TamperMonkey → 设置 → 自定义 Linter 配置

参考:Configuring ESLint

{
    "parserOptions": {
        "ecmaVersion": 6
    }
}

以前... eslint: error Parsing error: The keyword 'const' is reserved

更新:来自CertainPerformance的评论

似乎 Opera 安装有上述问题,但以下有效:

{
    "parserOptions": {
        "ecmaVersion": 6
    },"env": {
        "es6": true
    }
}