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

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

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

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

  • Команда Web Essentials > Edit Global JSCS Settings, чтобы открыть файл .jscs.json в моем каталоге профиля пользователя. Затем изменили свойство "excludeFiles" на [ "test/data/.js", "Scripts/jquery.js" ].

  • Создал файл .jshintignore в папке Scripts с "jquery *.js".

Ни один из этих методов не повлиял на генерируемые сообщения АОС. Я что-то делаю неправильно, или это проблема с веб-Essentials?

4b9b3361

Ответ 1

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

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

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

Переместите мое сообщение из https://github.com/madskristensen/WebEssentials2013/issues/603.

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

Если вы хотите использовать их, сохраните "Запустить на сборку" False, установите для параметра "Запуск при сохранении" значение "Истина". Все js будут JSHint и JSCS во время предварительного просмотра, открытия и сохранения. С этим изменением вы можете успешно строить без замедления. Список ошибок будет заполняться только с открытыми js-элементами JSHint и АОС.

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

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

в

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

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

"excludeFiles": ["**"],

полностью остановить АОС, только продолжать работать JSHint.

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

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

Наконец, вы можете выполнить обновление до 1,8,5, но это только прекратит выполнение "Run on build" . "Run on save" по-прежнему нужны эти настройки. Поэтому он не меняет того, что я говорю здесь.

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


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

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

Таким образом, правило recad exclude для minified js будет:

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

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

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


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

Лучше:

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

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


Я нашел простой способ перейти в "Инструменты - Параметры - Веб-Essentials - JavaScript", установить Run on Build/Save to False.

Другой метод - перейти к "Веб-Essentials - Изменить глобальные настройки АОС", чтобы установить 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>

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

Ответ 2

У меня была такая же проблема после установки KendoUI. Проект был практически невозможным. Я решил это, перейдя в Web Essentials → Изменить глобальные настройки АОС и добавив:

"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/*"] тем, что вы хотите исключить. Работала для меня как шарм.  

Ответ 3

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

На моей машине с веб-Essentials 2013 для обновления 2 следующие шаги отключили АОС для всех файлов:

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

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

Ответ 4

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