Variáveis ​​globais em Javascript e ESLint

100

Eu tenho vários arquivos javascript e defini algumas variáveis ​​globais em um arquivo que carrega antes dos outros. Como consequência, todos os arquivos carregados após o primeiro têm acesso à variável global. No entanto, o ESLint mostra a variável global como "não definida". Não quero mudar as regras do ESLint e gostaria de encontrar uma maneira elegante de me livrar dessas mensagens de erro. Qualquer pista? obrigado

marco_sap
fonte
4
-> eslint.org/docs/user-guide/configuring#specifying-globals . A documentação do ESLint é ótima, IMO, você deveria dar uma olhada nisso.
Felix Kling

Respostas:

114

Não acho que hackear regras ESLint por arquivo seja uma boa ideia.

Você deve definir globalsem .eslintrcou package.json.

Para .eslintrc:

"globals": {
    "angular": true
}

Para package.json:

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

PS

Ler a documentação é uma virtude obrigatória para desenvolvedores

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

v-andrew
fonte
7
Pode ser interessante notar que você define a variável global como truese você pode atribuir a variável a outra coisa e falsese ela não deve ser reatribuída.
RedSparr0w
6
Vincular a documentação é uma virtude muito apreciada nas respostas do stackoverflow.
Romain G de
@RomainG já existe o link abaixo;) Mas vou adicionar um para você
v-andrew
87

Você pode adicionar globais por arquivo ou em sua configuração. Se você não quiser mudar sua configuração, você terá que adicionar os globais usados ​​em cada arquivo.

Para especificar globais usando um comentário dentro de seu arquivo JavaScript, use o seguinte formato:

/* global var1, var2 */

Isso define duas variáveis ​​globais var1e var2. Se você quiser especificar opcionalmente que essas variáveis ​​globais nunca devem ser gravadas (somente leitura), você pode definir cada uma com um sinalizador falso:

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

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

DarkLegend
fonte