Silence JSHint具体时

时间:2014-08-31 19:17:58

标签: node.js express jshint

考虑以下标准Express功能:

if (app.get('env') === 'development') {
    app.use(function (err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

显示以下警告:

  

'下一个'已定义但从未使用过。 - W098

我知道我可以禁用所有警告,但这不是我想要的。我需要的是仅针对特定参数(在上面的代码段中的下一个')中沉默JSHint。

我还没有看到这个看似常见问题的明确答案。有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

在这种情况下,您可以执行以下操作

if (app.get('env') === 'development') {
    app.use(function (err, req, res, next) {
        /*jshint unused: vars*/
        var foo;

        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

现在jshint不会为next而哭泣,但它仍然会警告foo被定义但未被使用。

重要的是,此抑制将绑定到函数的范围。

答案 1 :(得分:1)

是的,这是可能的!

如果您使用的是JSHint的默认设置,那么此线程上接受的答案也是您的答案: Is there a way to suppress JSHint warning for one given line? 它显示了如何使用注释有条件地忽略在JSHint中抛出的特定错误/警告。

如果您使用的是Gulp或Grunt等构建工具,可以在插件的任务配置中将其添加到您的选项中。例如,与Grunt: 请参阅"忽略特定警告"在https://github.com/gruntjs/grunt-contrib-jshint/blob/master/README.md

希望这有帮助!