twitter-bootstrap build makefile jslint jshint

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