Подтвердить что ты не робот

Имейте jshint игнорировать определенные файлы при создании Twitter Bootstrap

У меня часто возникает эта проблема при использовании Twitter Bootstrap с другими сторонними JS-библиотеками, такими как html5.js из темы Wordpress "Twenty Twelve", где сборка не выполняется, потому что jshint (или jslint в предыдущих версиях TB, я думаю) выдает ошибку из-за сторонней 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 файлы в отдельную папку.

Есть ли способ заставить процесс сборки jshint или TB игнорировать некоторые JS файлы (возможно, через некоторую конфигурацию .jshintrc, о которой я не знаю?)?

4b9b3361

Ответ 1

Итак, есть возможность игнорировать файлы в jshint, но он не установлен в .jshintrc, а является отдельным файлом .jshintignore, что имеет смысл. Однако, хотя jshint будет искать .jshintrc в ваших подкаталогах проекта, .jshintignore должен быть в корне проекта. Итак, с помощью Twitter Bootstrap .jshintrc находится в /js, а .jshintignore необходимо поместить в /.

Поэтому для решения проблемы в моем вопросе /.jshintignore необходимо указать:

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

И что это!

Ответ 2

В качестве дополнения к Lèse majesté 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

Ответ 3

Самое простое решение для меня - просто добавить // jshint ignore: start в начало любого файла, который я хочу проигнорировать