Haz que jshint ignore ciertos archivos al crear Twitter Bootstrap
twitter-bootstrap build (3)
Como complemento a la answer Lèse Majesté, también se pueden escribir estos comentarios en su JS y jshint ignorará el código que se encuentra entre ellos:
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be linted with ignored by JSHint.
/* jshint ignore:end */
O si solo desea que JSHint no verifique una sola línea:
// jshint ignore:line
Referencia: jshint docs
A menudo tengo este problema cuando uso Twitter Bootstrap con otras bibliotecas JS de terceros, como html5.js
del tema "Twenty Twelve" de WordPress, donde la construcción falla porque jshint
(o jslint
en versiones anteriores de TB, creo) arroja un error debido a la biblioteca JS de terceros, por ejemplo
/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
Me gustaría evitar la modificación de bibliotecas de terceros o modificar el Makefile de TB, ya que eso causará problemas para las actualizaciones en el futuro; es mi única opción para poner archivos JS de terceros en una carpeta separada.
¿Hay alguna manera de hacer que jshint o el proceso de compilación de TB ignoren ciertos archivos JS (quizás a través de alguna configuración .jshintrc
que no estoy enterado?)?
Entonces hay una opción para ignorar los archivos en jshint, pero no está establecido en .jshintrc
sino en un archivo separado .jshintignore
, lo cual tiene sentido. Sin embargo, mientras jshint buscará .jshintrc
en los subdirectorios de su proyecto, .jshintignore
debe estar en la raíz del proyecto. Entonces, con Twitter Bootstrap, .jshintrc
está en /js
mientras que .jshintignore
debe colocarse en /
.
Entonces para resolver el problema en mi pregunta /.jshintignore
necesita contener:
js/html5.js
js/theme-customizer.js
¡Y eso es!
La solución más simple para mí es solo agregar // jshint ignore: start
a la cima de cualquier archivo que quiera ignorado