我有一个Javascript浏览器项目,该项目分为多个文件,并且无法让ESLint在同一个全局范围内对HTML文件的脚本标记进行整理,因此一个文件中的类和函数的声明和调用可以在另一个文件中识别。
这是我的项目结构:
这是foo.js的内容:
sayHello();
和bar.js:
function sayHello() {
console.log('Hello');
}
并且我已经将它们链接到HTML文件中
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="main.css">
<script src="libraries/bar.js" type="text/javascript"></script>
<script src="foo.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
我认为解决此问题的方法是使用eslint-plugin-html软件包,但是尝试配置它时没有运气。这些是我在项目本地安装的软件包:
Alexs-MacBook-Pro:Demo alexmcdermott$ npm list --depth=0
demo@1.0.0 /Users/alexmcdermott/GitHub/Demo
├── eslint@5.12.0
├── eslint-config-airbnb-base@13.1.0
├── eslint-plugin-html@5.0.0
└── eslint-plugin-import@2.14.0
我正在使用VSCode编辑器,但在终端中也遇到了相同的问题:
Alexs-MacBook-Pro:Demo alexmcdermott$ npx eslint --ext .js,.html .
/Users/alexmcdermott/GitHub/Demo/foo.js
1:1 error 'sayHello' is not defined no-undef
/Users/alexmcdermott/GitHub/Demo/libraries/bar.js
1:10 error 'sayHello' is defined but never used no-unused-vars
2:3 warning Unexpected console statement no-console
✖ 3 problems (2 errors, 1 warning)
和VSCode中的相同:
这是我的ESLint配置:
{
"env": {
"browser": true,
"es6": true
},
"extends": "airbnb-base",
"plugins": [ "html" ]
}
并且我还配置了VSCode以在VSCode用户设置中使用以下选项在HTML文件上运行ESLint:
{
"eslint.autoFixOnSave": true,
"eslint.options": {
"extensions": [ ".js", ".html" ]
},
"eslint.validate": [
"javascript",
{
"language": "html",
"autoFix": true
}
]
}
尽管我必须做错了什么,还是错过了eslint-plugin-html的要点?如果有人对我做错了什么或如何解决这个问题有任何意见,我将不胜感激,因为我已经坚持了很久了。请让我知道是否需要提供更多信息,这是我的新手。
答案 0 :(得分:2)
我在<projectfolder>/.vscode/settings.json
中有这个
{
"eslint.validate": [ "javascript", "html" ]
}
我正在使用一个像这样的.eslintrc.js
module.exports = {
"env": {
"browser": true,
"es6": true
},
"plugins": [
"eslint-plugin-html",
],
"extends": "eslint:recommended",
"rules": {
}
};
我定义了很多规则,但是没有将它们粘贴到上面
结果:
答案 1 :(得分:2)
npm install eslint-plugin-html --save-dev
。.eslintrc.js
,然后在plugins: ["html"]
之后添加module.exports
。如果您使用.json
或与.js
不同的格式,则只需遵循该模式并在相同的嵌套级别上添加相同的值即可。./node_modules/.bin/eslint --ext .html .
。答案 2 :(得分:0)
.html
文件答案 3 :(得分:0)
尝试使用 htmlhint。它可以很好地整理 html 文件。 https://htmlhint.com/