防止JSHint警告'functionName被定义但从未使用'

我刚开始使用JSHint(通过Sublime-Linter的Sublime Text 2包)。 我想抑制它在被定义之前使用的函数的警告,因为我看到使用这样的函数定义没有问题。 例如,下面的代码会生成警告:

(function($){ $(document).ready(function() { formValidationSetup(); refreshErrorMessages(); }); function formValidationSetup() { } function refreshErrorMessages() { } })(jQuery); 

警告:

  1. formValidationSetup被定义但从未被使用
  2. refreshErrorMessages被定义,但从未被使用过

我试过在JSHint选项中设置undeffalse ,但我仍然收到这些错误。 我应该设置另一个选项吗? 为undef 构buildJSLint文档 :

如果variables和函数在使用之前不需要声明,则为true。 这在严格模式下不可用。

为了避免这个警告

定义但从未使用

在jslint中你的javascript添加评论如:

  /*exported formValidationSetup, refreshErrorMessages */ 

在jshint和jslint中,您可以将未使用的选项设置为false:

  /*jshint unused:false*/ 

请参阅选项

我有这个问题should在柴testingexpect 。 我结束了这种模式:

 'use strict'; var request = require('supertest'); var should = require('chai').should(); // jshint ignore:line var expect = require('chai').expect; // jshint ignore:line process.env.NODE_ENV = 'test'; var appPromise = require('./index'); describe('GET /r_u_up', function() { it('respond with 204', function(done) { appPromise.then(function(app) { request(app) .get('/r_u_up') .expect(204, done); }); }); }); 

有趣的是,加上'use strict'; 在IIFE内部抑制错误。 不知道为什么。

在典型的Yoeman设置中,不要触及Gruntfile.js更好方法是编辑.jshintrc文件(Unix系统中的隐藏文件)。 并更新内容如下:

 { "curly": true, "eqeqeq": true, "immed": true, "latedef": true, "newcap": true, "noarg": true, "sub": true, "undef": true, "unused": false, // the change is here "boss": true, "eqnull": true, "node": true } 

"unused"设置为false

你可以简单地使用

 "unused": false, 

在你的.jshintrc

你会想使用'latedef'选项