如何基于每个目录设置JSHint选项

时间:2014-05-17 19:57:30

标签: jshint

我发现在每个目录的基础上指定JSHint选项的能力是added here

然而,我不清楚你是如何实际利用这一点的。如何在单个目录中设置JSH选项,以便选项与其他目录不同?

1 个答案:

答案 0 :(得分:5)

看来问题的变化实际上允许您在每个文件的基础上指定覆盖选项。您可以在配置中添加overrides属性,其值应为对象。此对象的键被视为正则表达式,对其测试文件名。如果要分析的文件的名称与overrides正则表达式匹配,则为该覆盖指定的选项将应用于该文件:

您在链接到的提交中的cli.js测试文件差异中有一个示例:

{
    "asi": true,
    "overrides": {
        "bar.js$": {
           "asi": false
        }
    }
}

在该示例中,有一个覆盖将应用于与bar.js$正则表达式匹配的任何文件(看起来有点疏忽,因为.将匹配任何字符,并且可能仅用于匹配文字.字符。


说了这么多,看起来overrides属性不会对你有所帮助。我认为您真正想要的是相关目录中的新.jshintrc文件。 JSHint从正在分析的文件的目录中查找该文件,然后向上移动目录树,直到找到它为止。无论它首先找到的是使用它的那个。 From the docs

  

如果是.jshintrc,JSHint将开始在与被删除文件相同的目录中查找此文件。如果未找到,它将在目录树中向上移动一级到文件系统根目录。

一个常见的用例是为应用程序代码和测试代码提供单独的JSHint配置。这允许您分别定义不同的环境和全局变量。