Предотвратить предупреждение Web Essentials JsHint ko не определено при использовании Knockout

В проекте ASP.NET MVC 5 с использованием объединения и минимизации у меня есть модель представления Javascript, которую я заполняю в файле .cshtml. Модель представления ссылается на нокаут через ko, что отлично работает. Однако вывод JsHint из Web Essentials сообщает о предупреждении W117, 'ko' is not defined для каждой ссылки на ko.

Каждый файл .js выглядит следующим образом:

/* exported MyViewModel */
function MyViewModel(viewModel) {
    self.someValue = ko.observable(); // JsHint warning on this line.
    ...
}

Каждый файл .cshtml выглядит следующим образом:

...
@section Scripts {
    <script>
        ko.applyBindings(new MyViewModel(ko.mapping.fromJS(@Html.Raw(Json.Encode(Model)))));
    </script>
}

Как сохранить преимущества предупреждений «не определено» в целом, но избежать этих ложных предупреждений?


person Edward Brey    schedule 17.01.2014    source источник


Ответы (2)


  1. В меню Web Essentials выберите «Изменить глобальные настройки jshint».
  2. Прокрутите до конца файла .jshintrc и добавьте следующее:

    "globals"       : { "ko": false}        // additional predefined global variables
    

Это предотвратит жалобы jshint на ko, но все же предупредит вас о других неопределенных символах.

Обратите внимание, что вы также можете сделать это для каждого файла, поместив этот комментарий вверху вашего файла javascript.

/*global ko*/
person Rich Wagenknecht    schedule 21.01.2014
comment
Опция для каждого файла хороша тем, что всем в команде не нужно вносить одно и то же изменение в .jshintrc. Это также делает очевидными предположения файла. Тем не менее, в проекте, основанном на нокауте, ko настолько вездесущ, что может заслуживать особого отношения. Приятно иметь возможность! - person Edward Brey; 21.01.2014
comment
@EdwardBrey Если вы хотите поделиться параметрами jshint в системе управления версиями, идеальное решение — добавить в проект локальный файл .jshintrc. - person Keen; 27.08.2014

Новый Web Essentials также может читать .jshintrc из родительских каталогов.

  1. Выберите Изменить глобальные параметры JSHint (.jshintrc) в меню Web Essentials.
  2. Скопируйте содержимое файла в файл «.jshintrc» в папке решения.
  3. Отредактируйте файл по мере необходимости (например, добавьте ko в качестве глобальной переменной)

Таким образом, файл .jshintrc можно добавить в систему управления версиями, чтобы поделиться им со всеми разработчиками без необходимости редактировать глобальные настройки JSHint на отдельных рабочих станциях.

person Mikko Rantanen    schedule 20.02.2014