2015-05-12 12 views
6

Sto configurando il mio ambiente per lint ES6. Ho installato eslint e posso vederlo nel mio node_modules. Nella mia directory node_modules/bin, ho il comando eslint.Sto ottenendo risultati diversi eseguendo uno script con npm che chiamando direttamente il comando - Nodo

posso eseguire il comando e puntarlo verso la directory e ottengo nessun errore:

./node_modules/.bin/eslint src/main/webapp/js/lcrf

posso vedere tutti gli errori Ing lint che ho bisogno di risolvere il problema.

Ho anche aggiunto il comando nel mio package.json:

"scripts": { 
    "lint": "eslint src/main/webapp/js/lcrf" 
    }, 

Ora cerco di eseguire il comando con npm run lint. È lint i miei file e ottengo lo stesso numero di errori di lint, ma poi errori node. Ecco la mia stacktrace:

npm ERR! Darwin 14.3.0 
npm ERR! argv "node" "/usr/local/bin/npm" "run" "lint" 
npm ERR! node v0.12.2 
npm ERR! npm v2.7.4 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] lint: `eslint src/main/webapp/js/lcrf` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] lint script 'eslint src/main/webapp/js/lcrf'. 
npm ERR! This is most likely a problem with the lcrf package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  eslint src/main/webapp/js/lcrf 
npm ERR! You can get their info via: 
npm ERR!  npm owner ls lcrf 
npm ERR! There is likely additional logging output above. 

Che cosa potrebbe causare questo accada? Qual è la differenza nei 2 modi in cui eseguo il comando?

+0

Questo è un problema interessante! Potrebbe valere la pena di indagare se il linter che stai usando restituisce un codice di uscita diverso da zero, che npm legge come un errore. – Brennan

risposta

9

npm sta impazzendo sul codice di ritorno diverso da zero da eslint. Se vuoi che gli errori di filaccia siano un'indicazione di "whoa, non dovrebbe succedere, allarme rosso, qualcosa è veramente sbagliato se questo è stato pubblicato", questo è quello che hai.

Se non si utilizza il codice di uscita (ad esempio, per fermare le successive fasi di compilazione) e si desidera solo l'uscita per essere solo il eslint uscita e nessuna successiva npm Freak Out, utilizzare questo nel vostro package.json:

"lint": "eslint src/main/webapp/js/lcrf || exit 0" 

Nota questo "Best Practices" section of the npm scripts docs:

non uscire con un codice di errore diverso da zero a meno che realmente sul serio. Tranne che per gli script di disinstallazione, ciò causerà il fallimento dell'azione npm e il potenziale ripristino. Se l'errore è minore o solo impedirà alcune funzionalità opzionali, allora è meglio stampare semplicemente un avviso ed uscire con successo.

+0

Cool, ho indovinato giusto 12 secondi prima che tu rispondessi :). Bella risposta. – Brennan

Problemi correlati