JSHintの使用を開始しました(Sublime Text 2のSublime-Linterパッケージを使用)。このような関数定義を使用しても問題はないので、定義される前に使用される関数に関する警告を抑制したいと思います。たとえば、次のコードは警告を生成します。
(function($){
$(document).ready(function()
{
formValidationSetup();
refreshErrorMessages();
});
function formValidationSetup()
{
}
function refreshErrorMessages()
{
}
})(jQuery);
警告:
- formValidationSetupは定義されていますが、使用されることはありません
- refreshErrorMessagesは定義されていますが、使用されません
JSHintオプションでundefをfalseに設定しようとしましたが、まだこれらのエラーが発生しています。設定する必要がある別のオプションはありますか? JSLint docs forundefを作成します:
変数と関数を使用する前に宣言する必要がない場合はtrueこれは、厳密モードでは使用できません。
警告を回避するには
定義済みだが使用されていない
javaScriptのjslintで次のようなコメントを追加します。
/*exported formValidationSetup, refreshErrorMessages */
Jshintおよびjslintでは、未使用オプションをfalseに設定できます。
/*jshint unused:false*/
オプション を参照してください
Chaiテストでshould
とexpect
でこの問題が発生しました。私はこのパターンになりました:
'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);
});
});
});
単純に使用できます
"unused": false,
.jshintrcで
典型的な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
に設定します。
興味深いことに、'use strict';
は、IIFE内でエラーを抑制します。理由はわかりませんが。