Как настроить Web Essentials 2013 на игнорирование файлов?

У меня установлен свежий проект веб-приложения MVC 5.1 в VS 2013 (обновление 1) с Web Essential 2013 (последний на сегодня). После создания проекта Web Essentials сканирует файлы javascript и публикует сообщения в окне вывода для любых обнаруженных проблем. Для совершенно нового проекта MVC 5.1 он генерирует более 11 000 сообщений - не очень полезно.

Я попытался двумя способами заставить его игнорировать файлы javascript, которые по умолчанию включены в новые проекты MVC 5:

  1. С помощью команды Web Essentials > Изменить глобальные настройки JSCS откройте файл.jscs.json в каталоге моего профиля пользователя. Затем изменили свойство "excludeFiles" на ["test / data /.js", "Scripts / jquery.js"].

  2. Создал файл.jshintignore в папке "Сценарии" с помощью "jquery *.js".

Ни один из этих методов не оказал никакого влияния на генерируемые сообщения JSCS. Я делаю что-то не так или это проблема с Web Essentials?

4 ответа

Решение

Обновление 4:

В новейшей версии Web Essentials 2013 1.9 "Лучше игнорировать логику для бегунов", все проблемы устранены. Теперь вы можете включить "Выполнить при сборке". Он имеет правило игнорирования по умолчанию для общей библиотеки js и минимизированной js. Следующие excludeFiles Конфиг все еще работает, но больше не нужен.

Обновление 3:

Крест мой пост с https://github.com/madskristensen/WebEssentials2013/issues/603.

Если вам не нужны функции JSHint и JSCS, просто перейдите в "Инструменты - Параметры - Веб-основы - JavaScript", установите "Запускать при сборке" и "Запускать при сохранении" в False.

Если вы хотите использовать их, оставьте False "Run on build", установите для "Run on save" значение True. Все js будут JSHint и JSCS при предварительном просмотре, открытии и сохранении. С этим изменением вы можете успешно строить без замедления. Список ошибок будет заполняться только открытыми в данный момент элементами JSHint и JSCS.

По умолчанию JSHint не будет работать на всех минимизированных и некоторых общих библиотеках js, но JSCS будет работать всегда. В то время как JSCS, он может задержать вас примерно на секунды с минимальными js. Если вы не хотите ждать, перейдите к "Веб-основы - Изменить глобальные настройки JSCS". + Изменить

"excludeFiles": ["test/data/*.js"],

в

"excludeFiles": ["**/*.min.js", "**/*.debug.js", "**/*.intellisense.js", "**/*-vsdoc.js"],

Пропустить АОС только на минис. Или изменить на

"excludeFiles": ["**"],

чтобы полностью остановить JSCS, только продолжайте работать JSHint.

Конечно, вы можете написать свое собственное правило, чтобы исключить те, которые вам не нужны. Просто поставьте двойные звезды в начале, используйте "/" вместо "\", другая часть просто использует одну звездочку для подстановочного знака. подобно "**/Scripts/*.js",

С правилом исключения он по-прежнему будет генерировать информационный элемент XML для каждого js, который будет исправлен позже (надеюсь), но, наконец, вы можете начать кодирование.

Наконец, вы можете обновить до 1.8.5, но это только остановит запуск "Выполнить при сборке". "Запустить на сохранение" все еще нужны эти настройки. Так что это не меняет того, что я здесь говорю.

Надеюсь, что эта информация верна и полезна, с текущими версиями 1.8 и 1.8.5.


Обновление 1:

Установите новую версию 1.8.5. Это остановит функцию "Run on build". Это означает, что даже если вы включите его, он не будет работать при сборке. Но "Run on save True" все равно будет работать при предварительном просмотре, открытии и сохранении. Правильный относительный шаблон excludeFiles: **/Script/**,

Таким образом, правило исключения по рекомендации для минимизированных js будет:

    "excludeFiles": ["**/Scripts/**.min.js", "**/Scripts/**.debug.js", "**/Scripts/**.intellisense.js", "**/Scripts/**-vsdoc.js"],

Или просто использовать **/Script/** чтобы исключить их всех.

<?xml проблема будет исправлена ​​следующей версией, в соответствии с ошибками JSHint / JSCS для файлов.min и другими?, Таким образом, этот шаблон должен быть последним правильным, с одной проблемой, которая должна быть исправлена ​​в следующей версии Web Essentials. Или, может быть, следующий WE предоставит хорошее правило excludeFiles по умолчанию.


Обновление 2:

Лучше:

"excludeFiles": ["**/*.min.js", "**/*.debug.js", "**/*.intellisense.js", "**/*-vsdoc.js"],

исключить все минимизированные JS, независимо от того, где он находится.


Самый простой способ, который я нашел, это перейти в "Инструменты - Параметры - Веб-основы - JavaScript", установить "Выполнить при сборке / Сохранить в False".

Другой способ - перейти к "Web Essentials - Изменить глобальные настройки JSCS", чтобы установить excludeFiles.

Но множественный excludeFiles - неправильный синтаксис. Следует использовать синтаксис ["a", "b"].

И следует использовать абсолютный путь (при установке в глобальном?) С разделителем пути '/', '\' не допускается.

Подкаталог бесполезен, вы должны указать каждый путь.

Таким образом, действительная настройка, как это:

"excludeFiles": ["C:/Solution/Project/Scripts/*", "C:/Solution/Project/Scripts/kendo/*"]

Но этот способ сгенерирует еще одну ошибку сборки для каждого файла js:

JSCS parse error: <?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
</checkstyle>

И информационный элемент в файл js:

<?xml version="1.0" encoding="utf-8"?>
<checkstyle version="4.3">
</checkstyle>

Я не знаю, как этого избежать. Так что, возможно, лучший способ - это просто первый легкий путь.

У меня была такая же проблема после установки KendoUI. Было в принципе невозможно запустить проект. Я решил это, перейдя в Web Essentials -> Изменить глобальные настройки JSCS и добавив:

"excludeFiles": ["Scripts/kendo/*"]

ниже "excludeFiles": ["test/data/*.js"] запись.

Теперь файл.jscs.json выглядит так:

{
"requireCurlyBraces": ["if", "else", "for", "while", "do", "try", "catch"],
"requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"],
"disallowLeftStickedOperators": ["?", "+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
"disallowRightStickedOperators": ["?", "+", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
"requireRightStickedOperators": ["!"],
"requireLeftStickedOperators": [","],
"disallowImplicitTypeConversion": ["string"],
"disallowKeywords": ["with"],
"disallowMultipleLineBreaks": true,
"disallowKeywordsOnNewLine": ["else"],
"excludeFiles": ["test/data/*.js"],
"excludeFiles": ["Scripts/kendo/*"]
"validateJSDoc": {
    "checkParamNames": true,
    "requireParamTypes": true
    }
}

Просто замените ["Scripts/kendo/*"] с тем, что вы хотите исключить. Работал как шарм для меня.

Опция excludeFiles в .jscsrc - правильный путь, но вам нужно указать его как полный путь к файловой системе, а не как относительный путь для вашего проекта, чтобы заставить его работать. Обратите внимание на прямую косую черту /, а не только на **. Вы также можете указывать более конкретные папки, но, кажется, вам нужно включить /, чтобы заставить его работать. Я подозреваю, что вы могли бы изучить документацию по сбору файлов узлов, чтобы действительно понять варианты.

На моем компьютере с Web Essentials 2013 для обновления 2 следующие шаги отключили JSCS для всех файлов:

  • Выберите меню Web Essentials-> Изменить глобальные настройки JSCS (.jscsrc)...
  • добавлять "excludeFiles": ["/**"], и сохраните файл настроек
  • Запустите JSCS вручную для проблемного файла JS или сохраните его снова (в зависимости от Сервис-> Параметры-> Веб-Essentials->JavaScript-> Линтер-> Выполнить при сохранении

Нет необходимости перезапускать Visual Studio.

В Web Essentials 2013 версии 2.3 добавлен новый способ решения этой проблемы: .weignore. См. http://vswebessentials.com/features/general или https://github.com/madskristensen/WebEssentials2013/pull/1250. Новый способ лучше, чем старый, потому что это централизованное и согласованное место для управления всеми компиляторами и линтерами. И это быстрее, потому что старый способ все равно должен запускать каждый целевой файл компиляторами и линтерами, а затем игнорироваться ими. Новый способ будет просто игнорировать сам Web Essentials, уменьшая время / ЦП / диск, на которые работают компиляторы и линтеры. И нет необходимости разбираться в каждом конкретном формате конфигурации компиляторов и линтеров, чтобы делать то же самое.

Другие вопросы по тегам