我正在使用eslint作为PyCharm中的集成linter进行Django + JavaScript项目。它适用于*.js
文件,但根本无法分析*.html
文件中的任何JavaScript。如何也为HTML文件启用ESLint?
这是我尝试过的
我添加了eslint-plugin-html
,并按照此处的设置说明进行操作:https://www.npmjs.com/package/eslint-plugin-html
这包括在PyCharm偏好设置的“语言和框架> JavaScript>代码质量工具> ESLint”中将"plugins": [ "html" ]
添加到.eslintrc.js
并将--ext .html,.js
添加到“附加ESLint选项”输入框中
这是我的.eslintrc.js
文件的样子(规则被跳过)。到目前为止,我已对ESLint vue插件进行了评论,因为据说该插件与eslint-plugin-html不兼容,这也无济于事。
module.exports = {
"env": {
"browser": true,
"es6": true
},
"extends": [
"eslint:recommended",
//"plugin:vue/essential",
"google"
],
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 2018
},
"plugins": [
"html",
//"vue"
],
"rules": {
...
}
};
这是我在PyCharm首选项中的ESLint设置的屏幕截图: ESLint settings in PyCharm preferences
答案 0 :(得分:0)
重要的是,在我的案例中,HTML文件被用作Django模板(这是我描述的场景(即Django项目)的标准方法)。如上面comment中的 lena 所述,当前不支持linting Django模板。我对JetBrains(拥有PyCharm的公司)的正式要求也得到了同样的确认。
答案是-目前无法在PyCharm中为Django模板启用ESLint 。解决方法是将JS代码移动到其他受支持的文件类型,以使代码不被插入(例如.js或.vue文件)。
JetBrains已在其跟踪系统中打开了一个新版本,以添加缺少的支持,因此,如果此功能对您很重要,请在那里投票:ESLint: support linting JavaScript code in Django templates。另外,使用此链接获取有关是否支持此功能的最新更新。