Pytanie ESLint - "okno" nie jest zdefiniowane. Jak zezwolić na zmienne globalne w pliku package.json


Przypisuję właściwość do globalnego obiektu okna, ale kiedy uruchamiam eslint, otrzymuję to:

"okno" nie jest zdefiniowane

widzę to tutaj w dokumentach eslint:

poniższe definiuje okno jako zmienną globalną dla kodu, który nie powinien wywoływać testowanej reguły:

valid: [
  {
    code: "window.alert()",
    globals: [ "window" ]
  }
]

Próbowałem dodać coś takiego do pliku package.json, aby eslint zezwolił na "okno" jako zmienną globalną, ale muszę zrobić coś złego. Z dokumentów wydaje mi się, że być może będę musiał zrobić coś takiego w oddzielnym pliku, ale czy istnieje sposób na zdefiniowanie niektórych dozwolonych zmiennych globalnych bezpośrednio w pliku package.json?


125
2018-05-22 14:03


pochodzenie


FYI, jeśli używasz węzła i chcesz rozpoznać ESLint global musisz to zapewnić "node": true jest ustawiony pod twoim "env" konfiguracja. - Joshua Pinter


Odpowiedzi:


Jest wbudowany environment: browser to obejmuje window:

Przykład:

"env": {
    "browser": true,
    "node": true,
    "jasmine": true
  },

Więcej informacji: http://eslint.org/docs/user-guide/configuring.html#specifying-environment


195
2017-09-09 14:06



Absolutnie najlepsza odpowiedź, dzięki. Nawet o tym nie myślałem :) - Knight Yoshi
Na wypadek, gdyby ktoś inny został złapany jak ja: to powinno być .eslintrc nie package.json - user7470360


Znalazłem to na tej stronie: http://eslint.org/docs/user-guide/configuring

W package.json działa to:

"eslintConfig": {
  "globals": {
    "window": true
  }
}

83
2018-05-22 15:07



właściwą metodą jest użycie "env": {"browser": true} - Nicolas
@Nicolas, tak, prawdopodobnie użyłbym metody, którą zasugerowałeś, jeśli to właśnie znalazłem jako pierwszy, ale ta odpowiedź jest co najmniej przydatna w pokazaniu, że możesz mieć swoją konfigurację eslint w package.json. - chevin99
Możliwe jest również wstawianie globali dla eslint w ten sposób: / * global angle: true * / - Mirko
pytanie w szczególności pyta, jak używać pliku package.json - virtualLast


Nie możesz podać tych globali w package.json. Dodaj .eslintrc w katalogu głównym projektu.

Określ globale w ten sposób

{
  "globals": {
    "document": true,
    "foo": true,
    "window": true
  }
}

42
2017-09-05 13:43



Zakładam, że masz na myśli "package.json", kiedy mówisz "project.json". Używanie pliku .eslintrc może być preferowaną metodą, ale można określić konfigurację w "package.json", używając obiektu "eslintConfig", jak podano w drugiej odpowiedzi. - chevin99
W jakiś sposób umieszczenie eslingConfig w package.json nie działa dla mnie (poza tym, że jest pojęciowo błędne). Dodanie go do pliku .eslintrc.json działa jednak. - Petrunov
@ Petrunov .eslintrc.json może po prostu być .eslintrc - Kirk Strobeck
to nie działa w jednym przypadku, którego doświadczam - używam eslint z gulp dla projektu rozszerzenia chrome. w globaliach ustawiam "chrome": true i nadal generuje błąd o tym, że jest nierozpoznanym globalnym. - Stephen Tetreault


Twój .eslintrc.json powinien zawierać poniższy tekst.
 ESLint wie o twoich zmiennych globalnych

{
"env": {
    "browser": true,
    "node": true
    }                                                                      
}

16
2017-12-08 09:33





Jeśli używasz Kątowy możesz to zrobić za pomocą:

"env": {
    "browser": true,
    "node": true
},
"rules" : {
    "angular/window-service": 0
 }

2
2018-05-05 13:43