2015-06-17 8 views
11

Sono nuovo a ESLint e ho integrato ESLint con IntelliJ.ESLint: Come impostare .eslintrc per riconoscere 'require'?

Fuori dalla scatola, la mia integrazione di ESLint non riconobbe node, ma revisione fondamentale della documentazione ha chiarito che con la creazione del file di configurazione chiamato .eslintrc alla radice della mia cartella di progetto (con il corretto impostazione IntelliJ per accedere al file) e impostando "node":true, ESLint riconosce node (vale a dire, il seguente completo .eslintrc funziona).

// Contents of .eslintrc at root of project - support for Node and jQuery 
{ 
    "env" : { 
    "node" : true, 
    "jquery" : true 
    }, 
} 

Tuttavia, ESLint ancora non riconosce require(), come evidenziato da questo screenshot:

ESLint does not recognize <code>require()</code>

ho fatto del mio meglio in un ragionevole lasso di tempo alla ricerca di una soluzione alla questione di fondo di come ottenere ESLint per riconoscere require(). In particolare, ho trovato un possibile suggerimento here, in cui suggeriva di aggiungere "amd":false in (presumevo) il file .eslintrc - ma non andare.

Questo sembra di base. Come posso ottenere .eslintrc per riconoscere require()?

(Se, nella sua risposta, è possibile fornire indicazioni su come coprire i casi più generali, che sarebbe anche utile. Grazie!)

risposta

8

il problema non è con ESLint. Se si osserva attentamente il messaggio, viene indicato JSHint.

Poiché si sta tentando di configurare ESLint, la soluzione più semplice sarebbe disabilitare o rimuovere il plugin JSHint dal proprio IDE.

Se si desidera continuare a utilizzare JSHint con ESLint, è possibile effettuare le seguenti operazioni:

soluzione singolo file: aggiungere /* global require */ nella parte superiore del file.

Soluzione generale per tutti i file: aggiungere la riga "node": true al numero .jshintrc.

+1

Grazie! Era solo sulla punta del mio subconscio che questi erano diversi. Ti piacerebbe avere una raccomandazione su quale sia 'migliore'? JSHint, ESLint ... o è utile usare entrambi? –

+0

Per chiunque sia interessato, ecco un collegamento a un confronto tra 'JSLint',' JSHint', 'JSCS', e' ESLint': http://www.sitepoint.com/comparison-javascript-linting-tools/ - da questo collegamento, andrò con 'ESLint'. –

+1

È difficile da dire. Per quel poco di JS che scrivo (per la maggior parte sto usando TypScript ora), uso ancora JSHint, perché ESLint non esisteva al momento in cui stavo usando JS puro. Come dice [FAQ ESLint] (https://github.com/eslint/eslint#im-not-giving-up-jshint-for-this), l'uno non è migliore dell'altro. Cose che dovresti prendere in considerazione: ESLint ha pieno supporto per ES6, che non posso confermare per JSHint. ESLint supporta anche molte regole di stile del codice (simili a JSCS) e JSHint sta eliminando esplicitamente queste regole e suggerisce l'uso di JSCS per questi controlli, il che ha un senso, ma è necessario utilizzare 2 strumenti. –

18

Aggiunta amd a env all'interno .eslintrc vi permetterà di utilizzare define() e require(), come da amd specifiche:

{ 
    "env": { 
    "amd": true 
    } 
} 
+0

Hmm. Ho provato ad aggiungere '" amd ": true' al mio file' .eslintrc', e non andare. Ci giocherò un po 'di più. –

+0

Hai riavviato sublime dopo l'aggiunta? (odio chiedere) –

+0

"env": { "amd": vero } –