你能用不同的语言检查文件的各个部分吗?

Can you Lint parts of a file in different languages?

BLUF:您可以使用 linter 将同一文件的不同部分与不同的 rules/languages 进行 lint 吗?

我有一些 HTML 文件,正文中包含各种不同语言的代码块。为了测试这些并确保它们遵循正确的样式,我希望能够以各自的语言检查文件的这些部分。

有没有 linter 可以做到这一点,或者有什么办法可以做到这一点?如果我只是用其他语言进行 lint,文件中的 html 就会抛出错误。

我知道我可以整理这些样本,将它们的内容写在单独的文件中,然后分别对它们进行 lint,但我想避免在 linting 周期中创建和更新它们。

目前正在使用 eslint。

示例:

<h1>A Title</h1>
<p>
  Some text that is nice normal html that can be linted the usual way.
</p>
<pre class='javascript>
  // this is some javascript that needs to be linted
  const foo = bar;
  function myFunction() {
    somethingThatMightNotPassLinting
  }
  ...
</pre>

您可以使用 eslint-plugin-html 等自定义插件来检查 HTML 文件中的 js。修改插件以查找 <pre> 标签而不是 <script> 标签。