2015-05-22 6 views
108

Sto assegnando un alloggio ai oggetto window globale, ma quando corro eslint, ottengo questo:ESLint - "finestra" non è definita. Come consentire le variabili globali in package.json

"finestra" non è definita

vedo questo here in the eslint docs:

la seguente finestra definisce come una variabile globale per il codice che non dovrebbe far scattare la regola in fase di test:

Ho provato ad aggiungere qualcosa di simile al file package.json per consentire a eslint di consentire a "window" come variabile globale, ma devo fare qualcosa di sbagliato. Dai documenti sembra che potrei aver bisogno di fare qualcosa di simile in un file separato, ma c'è un modo per definire alcune variabili globali permesse direttamente nel file package.json?

+0

Cordiali saluti, se si sta utilizzando il nodo e vogliono ESLint riconoscere 'global' allora è necessario assicurarsi' "nodo": true' è impostato sotto il vostro '" env "' configurazione. –

risposta

78

L'ho trovato su questa pagina: http://eslint.org/docs/user-guide/configuring

In package.json, questo funziona:

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

il modo giusto per farlo è usare "env": {"browser": vero} – Nicolas

+0

@Nicolas, sì, probabilmente avrei usato il metodo che hai suggerito se è quello che avevo trovato prima, ma questa risposta è a meno utile nel mostrare che puoi avere la tua configurazione di eslint in package.json. – chevin99

+3

È anche possibile inserire globalmente inline per eslint:/* global angular: true */ – Mirko

41

Non è possibile specificare questi globali in package.json. Aggiungi un .eslintrc nella root del progetto.

Specificare globali come questo

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

Suppongo tu intenda "package.json" quando dici "project". json". L'utilizzo di un file .eslintrc può essere il modo migliore per andare, ma è possibile specificare la configurazione in "package.json", utilizzando l'oggetto "eslintConfig" come specificato nell'altra risposta. – chevin99

+0

In qualche modo posizionare eslingConfig in package.json non ha funzionato per me (a parte essere concettualmente sbagliato).Aggiungendolo in .eslintrc.json funziona comunque. – Petrunov

+1

@Petrunov '.eslintrc.json' può essere semplicemente' .eslintrc' –

2

Se si utilizza angolare si può ottenere via con:

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

tuo .eslintrc.json dovrebbe contenere il testo qui sotto.
Così ESLint sa di variabili globali

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