Zmienne globalne w Javascript i ESLint


102

Mam wiele plików javascript i zdefiniowałem jakąś zmienną globalną w pliku, który ładuje się przed innymi. W konsekwencji wszystkie pliki ładowane po pierwszym mają dostęp do zmiennej globalnej. Jednak ESLint wyświetla zmienną globalną jako „niezdefiniowaną”. Nie chcę zmieniać reguł ESLint i chciałbym znaleźć elegancki sposób na pozbycie się tych komunikatów o błędach. Jakaś wskazówka? Dzięki


4
-> eslint.org/docs/user-guide/configuring#specifying-globals . Dokumentacja ESLint jest świetnym IMO, powinieneś się temu przyjrzeć.
Felix Kling

Odpowiedzi:


115

Nie sądzę, aby hakowanie reguł ESLint na plik było świetnym pomysłem.

Powinieneś raczej zdefiniować globalsw .eslintrclub package.json.

W przypadku .eslintrc:

"globals": {
    "angular": true
}

Dla package.json:

"eslintConfig": {
    "globals": {
        "angular": true
    }
}

PS

Czytanie dokumentacji jest cnotą obowiązkową dla programistów

https://eslint.org/docs/user-guide/configuring#specifying-globals


7
Warto zauważyć, że ustawiasz zmienną globalną na, truejeśli możesz przypisać zmienną do czegoś innego i falsejeśli nie należy jej ponownie przypisywać.
RedSparr0w

6
Łączenie dokumentacji to zaleta, która jest bardzo ceniona w odpowiedziach na przepełnienie stosu.
Romain G

@RomainG jest już link poniżej;) Ale dodam jeden dla Ciebie
v-andrew

87

Możesz dodać globale albo dla pliku, albo w swoim config. Jeśli nie chcesz zmieniać swojej konfiguracji, będziesz musiał dodać używane globale do każdego pliku.

Aby określić wartości globalne za pomocą komentarza w pliku JavaScript, użyj następującego formatu:

/* global var1, var2 */

Definiuje dwie zmienne globalne var1i var2. Jeśli chcesz opcjonalnie określić, że te zmienne globalne nigdy nie powinny być zapisywane (tylko do odczytu), możesz ustawić każdą z flagą false:

/* global var1:false, var2:false */

http://eslint.org/docs/2.0.0/user-guide/configuring#specifying-globals

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.