Предотвращение Web Essentials JSHint" ko не определено " предупреждение при использовании нокаута

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

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

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

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

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

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

2 ответов


  1. в меню Web Essentials выберите Редактировать глобальные настройки jshint
  2. прокрутите до нижней части.jshintrc файл и добавьте это:

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

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

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

/*global ko*/

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

  1. выберите Редактировать глобальные настройки JSHint (.jshintrc) из меню Web Essentials.
  2. скопируйте содержимое файла в ".jshintrc " файл в папке решения.
  3. редактировать файл (например добавить ко как глобальная переменная)

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