我将ESLint添加到我的chrome扩展项目中。我使用的是以chrome.
开头的chrome API,但显然eslint指向它是错误。
我想它应该是这样的:
"env": {
"browser": true,
"chrome": true,
"es6": true
},
但显然不是。
UPD:我认为最好的答案是添加webextensions: true
- 正如wOxxOm建议的那样。因为它是Chrome扩展程序 - chrome.
API在这里被大量使用。
否则,如其他建议添加/* global chrome */
会更好。
感谢您的回答。
答案 0 :(得分:9)
您需要添加:
"env": {
// ...
"webextensions": true
}
到您的.eslintrc.json
文件或一般的eslint配置。
答案 1 :(得分:3)
您可以在eslint配置文件中添加此项以添加全局变量
"globals": {
"chrome": true
}
答案 2 :(得分:2)
编辑:在create-react-app v4.0.0
中,不再需要使用EXTEND_ESLINT
标志来自定义ESLint配置,因此在4.0.0版本以后,以下答案将是不必要的。
我们还将
eslint-plugin-hooks
升级到了4.0.0版本,并删除了EXTEND_ESLINT
标志,因为不再需要自定义ESLint配置。
我正在使用create-react-app
,发现除了定义:
# This is YAML btw
env:
# ...
webextensions: true
在我的eslint
配置中(将chrome
作为全局变量添加),我还必须将EXTEND_ESLINT
的{{1}}环境变量设置为create-react-app
。 Docs here。
设置环境变量有几种不同的方法。例如,您可以在项目文件夹的根目录中创建一个true
文件,内容如下:
.env
从文档中,我相信这是一个实验性功能,但它为EXTEND_ESLINT=true
提供了eslint
的配置。在设置启用此功能之前,我必须手动注释
eslint-loader
在每个文件中,由于构建过程未使用我的/* global chrome */
配置,因此无法识别我将eslint
设置为全局变量。
尽管这个问题没有提及chrome
,但我敢肯定,很多人会以与我本人相同的情况来问这个问题。
答案 3 :(得分:0)
如评论中所述,没有chrome
环境,您可以在eslint docs中找到有关可配置环境的更多信息。
您可以将每个文件的全局变量指定为顶行注释,或者在配置文件中,请参阅specifying global。您还可以编写自定义Eslint Chrome插件,设置全局和解析器选项(这是环境为您做的)并将其导入配置文件。