Странная проверка Javascript в Dreamweaver CC
Я установил Dreamweaver CC 2015 и обнаружил, что у меня есть множество ошибок в моих рабочих файлах JavaScript. Также У меня есть множество ошибок в импортированных библиотеках JavaScript, включая jQuery.
наиболее важной "ошибкой" является эта в начале каждой рабочей функции:
Missing "use strict" statement.
он работал довольно хорошо без "use strict", и я никогда даже не видел этого заявления нигде.
еще один странный вопрос:
Extending prototype of native object: 'Array'.
здесь код, который провоцирует предупреждение:
Array.prototype.sortOn = function(key){
this.sort(function(a, b){
if(a[key] < b[key]){
return -1;
}else if(a[key] > b[key]){
return 1;
}
return 0;
});
};
Итак, мои варианты:
- Ditch Dreamweaver и использовать другую IDE (хуже всего, потому что она отлично работает для моих целей - я единственный разработчик HTML/CSS/JS/PHP/MySQL в моем проекте.
- исправить все ошибки как Dreamweaver хочет, потому что он имеет хорошую точку. Тогда объясните, пожалуйста, почему? Я в порядке с изменением "= = "на"===", добавляя " var "перед объявлениями переменных, не используя "return" после " if " без фигурных брекеты, но это "строгое использование" меня беспокоит.
- настроить проверку JavaScript, поэтому отображаются только критические ошибки - лучший вариант для меня, но я не знаю, как это сделать?
какой лучший вариант пойти с? Любая помощь очень ценится.
2 ответов
вот что я выяснил.
проблема заключалась в том, что я не знал о решениях JSHint и JSLint для проверки javascript. JSHint интегрирован в Dreamweaver CC и легко настраивается, если вы знаете, что делать.
Обычно JSHint имеет три способа настроить его, но они не работают в среде Dreamweaver.
что вы должны сделать, это:
- в верхнем меню выберите Правка -> Настройки (Dreamweaver -> настройки на Mac)
- выбрать "пылеобразования" в боковом меню.
- выберите " JS "и нажмите"Редактировать и сохранять изменения".
- файл
JS.jshintrc
будет открыт в Dreamweaver. - редактировать файл, как вы обычно (см. параметры JSHint) и сохранить.
в моем конкретном случае я изменил это:
"strict":false,
"undef":false,
"unused":false
...это означает, что мне не нужно везде ставить "use strict" и может уйти определение и использование переменных в разных файлах. Да, я не использую функции обертки и использую много глобалов. Да, я знаю, что это плохо, но рефакторинг это не самый высокий приоритет в моем графике.
конечно, я изменю все три эти опции на "true" и рефакторинг всех моих файлов JS, чтобы соответствовать стандартам, когда придет время.
отключение проверки "undef" - это кувалда, так как JSHint будет игнорировать все опечатки имен переменных и функций. Вы не найдете опечатку до времени выполнения, что раздражает и тратит время.
вместо того, чтобы полностью отключить сообщения "undef", я использовал У JSHint Встроенные Директивы в верхней части моего .файлы js. Например:
/* globals myGlobalVar, myGlobalFunction */
var myLocalVar = myGlobalVar;
myGlobalFunction();
с директивой globals в файле JSHint не будет отмечать myGlobalVar
или myGlobalFunction()
как не определено ошибки. Использование встроенных директив" globals " имеет дополнительное преимущество документирования зависимостей между вашими .файлы js.
читайте о встроенных директивах JSHint здесь: