【问题标题】:Disabling JSHint indentation check only for a specific file仅对特定文件禁用 JSHint 缩进检查
【发布时间】:2013-04-05 00:28:23
【问题描述】:

我在启用缩进强制选项并将其设置为 4 的情况下使用 jshint,并且希望对代码库中的大多数文件保持这种方式。

不过,在一个特定文件中,我想禁用此检查。

我尝试在顶部添加 jshint 注释,但没有奏效:

/* jshint indent: false */

这太糟糕了,因为这种语法适用于其他选项。例如,我可以使用以下命令禁用驼峰式强制执行选项:

/* jshint camelcase: false */

我该怎么做?

一些答案​​表明缩进会自动启用白色选项,但我尝试了以下方法,它也不起作用:

/* jshint white: false */

【问题讨论】:

  • 当我在他们的网站上使用它时,它表明它需要一个小整数作为缩进输入。所以我的猜测是没有办法覆盖默认值。您可能想在他们的 github 页面上打开一个问题:github.com/jshint/jshint/issues
  • 当然,如果您只想为该页面指定不同的特定缩进,您始终可以直接设置。只是似乎不是一种完全忽略它的方法。根据您使用的插件/命令行工具,您还可以让 JSHint 完全忽略该文件或为此文件引用不同的配置文件。
  • 是的,这也是我所看到的,jshint 期待缩进后的 int。

标签: javascript indentation jshint


【解决方案1】:

目前这是不可能的。 JSHint 验证indent 选项的值如下:

if (typeof val !== "number" || !isFinite(val) || val <= 0 || Math.floor(val) !== val) {
    error("E032", nt, g[1].trim());
    return;
}

正如您在问题的 cmets 中注意到的那样,如果该值不是大于 0 的整数,则会引发错误。但实际上并没有对该整数设置最大限制。

根据您运行 JSHint 的方式,可能会覆盖不关心缩进的文件的默认配置。例如,使用JSHint Grunt task,您可以这样做:

grunt.initConfig({
    jshint: {
        options: {
            /* Don't set indent here */
        },
        uses_defaults: ["somefile.js"],
        with_overrides: {
            options: {
                indent: 4
            },
            files: {
                src: ["someotherfile.js"]
            }
        }
    }
});

更新

我有 opened a pull request 提供了解决此问题的建议,因此请密切关注,我们将看看 JSHint 团队是否想要添加此功能。

【讨论】:

  • 这似乎已经修复了。
  • 是的,这是从 JSHint 2.0.0 开始修复的。
猜你喜欢
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 2016-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
相关资源
最近更新 更多