web-dev-qa-db-ja.com

Twitterのビルド時にjshintが特定のファイルを無視するようにするBootstrap

Twitter BootstrapをWordPressのhtml5.jsなどの他のサードパーティのJSライブラリで使用すると、しばしば問題が発生します。 "Twenty Twelve"テーマでは、jshint(または以前のバージョンのTBと思う)のjslintは、サードパーティのJSライブラリが原因でエラーをスローします。たとえば、.

\n##################################################
Building Bootstrap...
##################################################\n
js/html5.js: line 3, col 122, Expected ')' to match '(' from line 3 and instead
  saw ','.
js/html5.js: line 3, col 140, Expected an identifier and instead saw ')'.
js/html5.js: line 4, col 101, eval is evil.
js/html5.js: line 6, col 369, Confusing use of '!'.
js/html5.js: line 6, col 422, Confusing use of '!'.
js/html5.js: line 7, col 61, 'b' is already defined.
js/theme-customizer.js: line 26, col 26, Use '===' to compare with ''.

7 errors
make: *** [build] Error 1

サードパーティのライブラリを変更したり、TBのMakefileを変更したりしないでください。これは将来のアップグレードで問題が発生するためです。サードパーティのJSファイルを別のフォルダーに配置する唯一のオプションです。

特定のJSファイルを無視するjshintまたはTBのビルドプロセスを取得する方法はありますか(おそらく、私が知らない.jshintrc構成によって)?

39
Lèse majesté

そのため、jshintのファイルを無視するオプションがありますが、.jshintrc内ではなく、別個のファイル.jshintignore内で設定されます。これは理にかなっています。ただし、jshintはプロジェクトのサブディレクトリで.jshintrcを探しますが、.jshintignoreはプロジェクトのルートにある必要があります。したがって、Twitter Bootstrapでは、.jshintrc/jsにありますが、.jshintignore/に配置する必要があります。

したがって、私の質問/.jshintignoreの問題を解決するには、以下を含める必要があります。

js/html5.js
js/theme-customizer.js

以上です!

94
Lèse majesté

Lèsemajestéの answer の補足として、これらのコメントをJSに書き込むこともでき、jshintはその間のコードを無視します。

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be linted with ignored by JSHint.
/* jshint ignore:end */

または、JSHintに単一行をチェックさせたくない場合:

 // jshint ignore:line

リファレンス: jshint docs

34
Justin

私にとって最も簡単な解決策は、// jshint ignore: start無視したいファイルの先頭へ

14
Ronnie