尝试在我的 Opera 用户脚本中使用 'const' 时出现错误
I'm getting an error when trying to use 'const' in my userscript with Opera
我可以将最新版本的 Chrome、Firefox 和 Edge (Chromium) 与 Tampermonkey 一起使用,它们都支持在我的用户脚本中使用 const
。但是,对于带有 Tampermonkey 4.11.6120 的 Opera 73.0.3856.284,我收到错误消息“eslint:null - 解析错误:关键字 'const' 已保留”。虽然我知道我可以使用 var
或 let
我想知道是否有特定原因导致此错误。我的用户脚本是跨浏览器的,我希望是否有一种方法可以使用 const 而不会出现此错误。下面的图片只是我用 const 制作的用户脚本来显示错误:
编辑:我 运行 使用此代码的测试用户脚本:
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 配置
{
"parserOptions": {
"ecmaVersion": 6
}
}
之前...
更新:来自 CertainPerformance 的评论
似乎 Opera 安装在上述方面有问题,但以下工作正常:
{
"parserOptions": {
"ecmaVersion": 6
},
"env": {
"es6": true
}
}
我可以将最新版本的 Chrome、Firefox 和 Edge (Chromium) 与 Tampermonkey 一起使用,它们都支持在我的用户脚本中使用 const
。但是,对于带有 Tampermonkey 4.11.6120 的 Opera 73.0.3856.284,我收到错误消息“eslint:null - 解析错误:关键字 'const' 已保留”。虽然我知道我可以使用 var
或 let
我想知道是否有特定原因导致此错误。我的用户脚本是跨浏览器的,我希望是否有一种方法可以使用 const 而不会出现此错误。下面的图片只是我用 const 制作的用户脚本来显示错误:
编辑:我 运行 使用此代码的测试用户脚本:
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 配置
{
"parserOptions": {
"ecmaVersion": 6
}
}
之前...
更新:来自 CertainPerformance 的评论
似乎 Opera 安装在上述方面有问题,但以下工作正常:
{
"parserOptions": {
"ecmaVersion": 6
},
"env": {
"es6": true
}
}