WebStorm - "angular" не определен
ПРИМЕЧАНИЕ. Это проблема WebStorm, а не проблема angular.js.
Сценарий проблемы: http://f.cl.ly/items/302s0d1k1i3i1B2p0W09/ws703-angular-not-defined.mp4
Описание:
В моем файле index.html есть следующее:
<script src="vendor/js/angular.min.js"></script>
<script src="app/js/scratch.js"></script>
В scratch.js, когда я ссылаюсь на "angular", я продолжаю получать это сообщение "angular не определено" от JSHint. Как это сделать, чтобы angular рассматривался как определенный в этом файле, поэтому JSHint перестает жаловаться на это? Это проблема конфигурации? Просьба сообщить.
WebStorm v7.0.3/Mac OSX v10.9.1
Ответы
Ответ 1
Самый первый пример на странице документации JSHint заключается в следующем:
Файл конфигурации - это простой JSON файл, который указывает, какие параметры JSHint включить или выключить. Например, следующий файл включит предупреждения о undefined и неиспользуемых переменных и сообщит JSHint о глобальной переменной с именем MY_GLOBAL.
{
"undef": true,
"unused": true,
"globals": { "MY_GLOBAL": false }
}
Замените MY_GLOBAL
на angular
, и у вас больше не будет этого предупреждения JSHint.
Ответ 2
В
Webstorm settings > JavaScript > Code Quality Tools > JSHint
имеется строка "Предопределенная". Нажмите "Установить" рядом с ним. Здесь вы можете добавить все предопределенные переменные.
Ответ 3
В случае, если это помогает:
Я использовал yoman (yo angular), чтобы подстроить базовый проект и получил ту же проблему "angular не определена" в WebStorm 8 (где у меня есть плагин AngularJS по умолчанию). Тем не менее, я видел, как другие делают это и не имеют той же проблемы.
Выбранное выше решение правильное в JSHint необходимо рассказать о глобальной переменной с именем "angular". Однако, если вы используете yoman, требуемые параметры конфигурации уже будут определены в .jshintrc(файл в вашем каталоге под открытым небом).
Итак, все, что вам нужно сделать, это использовать JSHint в качестве настроек по умолчанию для проекта. Для этого я нашел следующий поток SO, полезный для явного определения местоположения этого файла конфигурации.
JSHint ведет себя по-разному в Webstorm и Grunt
В WebStorm 8 вы увидите опцию "Использовать конфигурационные файлы" - проверка того, что будет автоматически искать файл .jshintrc в вашей иерархии проектов. При выборе этого параметра 'angular не будет определен. Проблема исчезнет навсегда.
Ответ 4
Перейдите в Settings > Plugins
и загрузите плагин AngularJS для WebStorm. Это первое, что я сделал, прежде чем использовать AngularJS с WebStorm, и я никогда не видел этой проблемы.
В версии 8 WebStorm будет полностью запущен AngularJS, но на данный момент этот плагин должен помочь.
Изменить: Хорошо, я думаю, что я нашел другое возможное решение. Как вы сказали, это проблема WebStorm. В коде нет фактической ошибки, это просто проверка кода. Вы можете отключить эту проверку следующим образом:
Перейдите к settings > inspections > JavaScript > General
и снимите флажки "unresolved JavaScript variable"
и "unresolved JavaScript function"
.
Это должно привести к ошибке. Я нашел это, пройдя учебник AngularJS по Pluralsight.
Ответ 5
Чтобы WebStorm (2016+) правильно распознал углы и даже включил завершение кода, просто перейдите по ссылке:
File > Settings
Затем в левой части выберите:
Languages & Frameworks > JavaScript > Libraries
Отметьте флажок рядом с 'angular' и нажмите "Применить". Если angular не отображается в списке, вам нужно нажать "Добавить" и перейти туда, где вы загрузили библиотеку.