jshint静的コード検出ツール
5917 ワード
インストール
プロジェクトで使用可能なファイル: .jshintrc jshintプロファイル/または--configコマンドで指定します.jsonファイル .jshintignore jshintは、検出するファイルを無視しない/または--exclude-pathコマンドで指定する.gitignore reporter.jsカスタムjshintの出力方法は、本明細書の添付ファイル:reporter を参照してください.
使用
ide拡張
主流のideには独自の拡張プラグインがあり、ここではvscodeで簡単に説明します.vscodeの左側のアプリストアでjshintを検索するのが1位です.プロジェクトに合わせるjshintrcファイルはideでエラーを報告できます.
jshint CLI
jshint持参コマンドライン
例
説明する
jshint myfile.js
jshintの実行
jshint --reporter=myreporter.js myfile.js
Reporterの定義
jshint --verbose myfile.js
出力にエラーコードを入れる
jshint --show-non-errors myfile.js
出力にエラーメッセージを入れる
jshint --exclude path
lintedされたくないディレクトリに追加
jshint --exclude-path
指定jshintignore
--prereq
グローバル変数の指定
jshint --help
ヘルプ
jshint --version
バージョン#バージョン#
...
...
エラーメッセージをブロック
jshintは、異なるプロジェクトのニーズとプログラマーの習慣に基づいて、エラーや警告のヒントをオンまたはオフにするためのoptionオプションを提供します.しかし、構成によって削除できないヒントもあります.△これはちょっとうるさい..次のように使用できます.
対応する警告を削除します.このW 034がエラーコードです.具体的には、
あるいはideのヒントもエラーコードを直接提示します.(note:一般警告のエラーコードはWで始まり、エラーコードはEで始まる)遮蔽されたエラーを再起動したい場合は
構成方法
次のconfig構成を順番に検索します. jshint--config.path/myconfig.json指定config package.jsonにjshintConfigプロパティを追加し、プロパティにパラメータを構成します. プロジェクトのルートディレクトリに1つ追加する.jshintrcのjsonプロファイルは、コードファイルディレクトリから見つかるまで実行されます.jshintrcファイル.グローバルのデフォルト構成では見つかりません.jshintrcファイル.
Inline configuration
以上の3つの方法jshintに加えて、行内構成もサポートされています.同様に、ファイルまたは関数の先頭に次を追加します.
行の構成には、次の方法があります.
jshintの先頭に複数のオプションがカンマで区切られます
globalsの先頭に、undefオプションの有効化時に未定義変数のエラーを適用しないようにグローバル変数を識別します.
exported、グローバル変数を識別unusedオプションが有効になっている間に変数がエラーを報告しないようにする
ignore,ignoreのコードはjshint検出をしません
falls through、Switch statementsがbreakエラーを報告しないことを避ける
jshintrcパラメータ
リファレンスhttp://jshint.com/docs/options/
具体的なパラメータは、上記の公式ドキュメントを参照してください.ここではあまり紹介しません.
例:
ここで言うのはoptionの中で強化オプション、緩和オプション、環境オプションのほかにいくつかの特殊なオプションがあります:entend
overrides
アタッチメント
reporters JSHint Reporter.jsは、jshintのデフォルト出力メソッドの代わりにカスタマイズされたファイルです.jshintコマンドでReporterを実行できます
次に例を示します.
上記の例でresに格納されているerrorのフォーマットは、次のとおりです.
もしあなたがexporterでいくつかの間違いを報告することを禁止したいなら、判断を書くことができます.error.code=='Wxxx'の場合return.
参照先:http://jshint.com/docs/
npm install jshint -g
プロジェクトで使用可能なファイル:
使用
ide拡張
主流のideには独自の拡張プラグインがあり、ここではvscodeで簡単に説明します.vscodeの左側のアプリストアでjshintを検索するのが1位です.プロジェクトに合わせるjshintrcファイルはideでエラーを報告できます.
jshint CLI
jshint持参コマンドライン
例
説明する
jshint myfile.js
jshintの実行
jshint --reporter=myreporter.js myfile.js
Reporterの定義
jshint --verbose myfile.js
出力にエラーコードを入れる
jshint --show-non-errors myfile.js
出力にエラーメッセージを入れる
jshint --exclude path
lintedされたくないディレクトリに追加
jshint --exclude-path
指定jshintignore
--prereq
グローバル変数の指定
jshint --help
ヘルプ
jshint --version
バージョン#バージョン#
...
...
エラーメッセージをブロック
jshintは、異なるプロジェクトのニーズとプログラマーの習慣に基づいて、エラーや警告のヒントをオンまたはオフにするためのoptionオプションを提供します.しかし、構成によって削除できないヒントもあります.△これはちょっとうるさい..次のように使用できます.
/* jshint -W034 */
対応する警告を削除します.このW 034がエラーコードです.具体的には、
jshint --verbose myfile.js
myfile.js: line 6, col 3, Unnecessary directive "use strict". (W034)
あるいはideのヒントもエラーコードを直接提示します.(note:一般警告のエラーコードはWで始まり、エラーコードはEで始まる)遮蔽されたエラーを再起動したい場合は
/* jshint +W034 */
構成方法
次のconfig構成を順番に検索します.
Inline configuration
以上の3つの方法jshintに加えて、行内構成もサポートされています.同様に、ファイルまたは関数の先頭に次を追加します.
/* jshint undef: true, unused: true */
/* globals MY_GLOBAL */
行の構成には、次の方法があります.
jshintの先頭に複数のオプションがカンマで区切られます
/* jshint strict: true */
globalsの先頭に、undefオプションの有効化時に未定義変数のエラーを適用しないようにグローバル変数を識別します.
/* globals MY_LIB: false */
exported、グローバル変数を識別unusedオプションが有効になっている間に変数がエラーを報告しないようにする
/* exported EXPORTED_LIB */
ignore,ignoreのコードはjshint検出をしません
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
falls through、Switch statementsがbreakエラーを報告しないことを避ける
switch (cond) {
case "one":
doSomething(); // JSHint will warn about missing 'break' here.
/* falls through */
case "two":
doSomethingElse();
}
jshintrcパラメータ
リファレンスhttp://jshint.com/docs/options/
具体的なパラメータは、上記の公式ドキュメントを参照してください.ここではあまり紹介しません.
例:
{
// :
//use es6. 3/5/6
"esversion": 6,
//
"curly": true,
// true, == !=, === !==。
"eqeqeq": false,
// js 。
"futurehostile": true,
// typeof
"notypeof": true,
//
// 4 :"inner" ;"outer" ;
// false inne ; true
"shadow": "inner",
//ECMAScript 5
// "global" - "use strict";
// "implied" - "use strict";
// false -
// true - "use strict";
"strict": "implied",
//
"undef": true,
//
"unused": true,
// true , var
// "varstmt": true,
// "globals": {
// "require": true
// },
// :
//
"asi": true,
// :
// , window,document;
// : alert console。
"browser": true,
// , : console, alert
"devel": true,
// node
"node": true,
// JSHint, ECMAScript 6 。 。
"module": true,
// jQuery 。
"jquery": true
}
ここで言うのはoptionの中で強化オプション、緩和オプション、環境オプションのほかにいくつかの特殊なオプションがあります:entend
{
"extends": "../.jshintrc",
"globals": {
"test": false,
"assert": false
}
}
//
overrides
{
"shadow": false,
"overrides": {
"lib/*-test.js": {
"expr": true
}
}
}
//
アタッチメント
reporters JSHint Reporter.jsは、jshintのデフォルト出力メソッドの代わりにカスタマイズされたファイルです.jshintコマンドでReporterを実行できます
jshint --reporter=myreporter.js myfile.js
次に例を示します.
"use strict";
module.exports = {
reporter: function (res) {
var len = res.length;
var str = "";
res.forEach(function (r) {
var file = r.file;
var err = r.error;
str += file + ": line " + err.line + ", col " +
err.character + ", " + err.reason + "
";
});
if (str) {
process.stdout.write(str + "
" + len + " error" +
((len === 1) ? "" : "s") + "
");
}
}
};
上記の例でresに格納されているerrorのフォーマットは、次のとおりです.
[
{
file: 'demo.js',
error: {
id: '(error)',
code: 'W117',
reason: '\'module\' is not defined.'
evidence: 'module.exports = {',
line: 3,
character: 1,
scope: '(main)',
// [...]
}
},
// [...]
]
もしあなたがexporterでいくつかの間違いを報告することを禁止したいなら、判断を書くことができます.error.code=='Wxxx'の場合return.
参照先:http://jshint.com/docs/