J'ai souvent ce problème lors de l'utilisation de Twitter Bootstrap avec d'autres bibliothèques JS tierces, telles que html5.js
du thème "Twenty Twelve" de WordPress, où la construction échoue parce que jshint
(ou jslint
dans les versions précédentes de TB je pense) lève une erreur grâce à la bibliothèque JS tierce, par ex.
\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
Je voudrais éviter de modifier des bibliothèques tierces ou de modifier le Makefile de TB, car cela posera des problèmes pour les mises à niveau à l'avenir; est ma seule option pour placer les fichiers JS tiers dans un dossier séparé.
Existe-t-il un moyen d'obtenir jshint ou le processus de génération de TB pour ignorer certains fichiers JS (peut-être par le biais de .jshintrc
configuration dont je ne suis pas au courant?)?
Il existe donc une option pour ignorer les fichiers dans jshint, mais elle n'est pas définie dans .jshintrc
mais plutôt un fichier séparé .jshintignore
, ce qui est logique. Cependant, alors que jshint recherchera .jshintrc
dans les sous-répertoires de votre projet, .jshintignore
doit être à la racine du projet. Donc, avec Twitter Bootstrap, .jshintrc
est dans /js
tandis que .jshintignore
doit être placé dans /
.
Donc, pour résoudre le problème dans ma question /.jshintignore
doit contenir:
js/html5.js
js/theme-customizer.js
Et c'est tout!
En complément de Lèse majesté réponse , on peut également écrire ces commentaires dans votre JS et jshint ignorera le code entre les deux:
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be linted with ignored by JSHint.
/* jshint ignore:end */
OU si vous souhaitez simplement que JSHint ne vérifie pas une seule ligne:
// jshint ignore:line
Référence: jshint docs
La solution la plus simple pour moi est d'ajouter simplement // jshint ignore: start
en haut du fichier que je veux ignorer