JSLint - ошибки «var notfined», вызванные внешними файлами сценариев - PullRequest
2 голосов
/ 18 января 2012

Я пробую JSLint на некоторых файлах javascript в наших проектах на работе и натолкнулся на несколько ошибок, таких как:

JS Lint: '<var name>' is not defined

Проблема в том, что переменная определена в отдельном файле, на который есть ссылки в другом месте. например на HTML-странице есть global.js и pageSpecific.js

Я знаю, используя синтаксис

/* global varName */ 

, чтобы сообщить JSLint, что да, что эта переменная действительно существует, но это не идеально в этом сценарии из-за количества различных переменных, вызывающих эти ошибки (в каждой странице будут строки этих глобальных переменных). И при этом я не хочу просто игнорировать эту ошибку, в конце концов, возможно, там есть «подлинная» неопределенная ошибка, которая требует некоторого внимания.

У меня такое чувство, что либо есть решение JSLint, о котором я не знаю, либо, что более вероятно, это свидетельствует о проблеме с тем, как JS структурирован в этом проекте? Являются ли файлы 'global.js' (подобного рода) плохой практикой?

Идеи / отзывы приветствуются.

Ответы [ 2 ]

3 голосов
/ 18 января 2012

Это указывает на проблему с тем, как структурирована JS.Глобалы должны быть сведены к минимуму.Вещи, которые действительно должны быть глобально доступны, должны зависать от одного глобального объекта (этот метод известен как пространство имен в мире JS).

0 голосов
/ 04 мая 2012

Вы также можете передать список глобальных переменных в команду, которую используете для вызова JSLint / JSHint, хотя большая проблема в том, что у вас не должно быть столько переменных, загрязняющих глобальную область действия.

...