2015-05-20 24 views
6

Attualmente ho uno script npm per l'esecuzione di un linter. Ovviamente ci saranno degli errori in uscita, ma lo script npm fallisce piuttosto che mostrarmi degli errori e andare avanti.Gli script npm ignorano gli errori

Questo è terribile soprattutto quando ho qualcos'altro che chiama la sceneggiatura in quanto rompe meravigliosamente tutto. Posso sempre eseguire npm run lint --force per evitare errori, ma non ho quel lusso --force tutto il tempo (ad esempio, con un git-hook).

Come posso impostare lo script in modo che emetta errori senza causare problemi?

risposta

3

trovato la risposta:

semplice aggiunta: exit 0 alla fine del comando lo ha fatto!

+0

Questo non funziona per me. Scrivi l'uscita 0 nel comando del terminale o in un file come package.json? – BeniaminoBaggins

+1

@Beniamino_Baggins Suppongo che tu abbia già risolto questo problema, ma la mia soluzione è la seguente per lo script npm "webpack": "webpack || exit 0" '. –

0

Immagino che risolverlo in npm scripts sarà sempre un po 'limitato. C'è un modulo micro runjs che è una sorta di piccolo miglioramento per gli script. Il fatto è che puoi eseguire comandi cli e gestire gli errori in JS. Così si potrebbe fare qualcosa di simile (runfile.js):

import { run } from 'runjs' 

export function lint() { 
    try { 
    run('eslint .') 
    } catch (e) { 
    // handle error how you want, you can silently just do nothing or re-throw it by: throw e.stack 
    } 
} 

poi nella console:

$ run lint 
3

Ci sono alcune altre opzioni che sono cross platform troppo:

eslint || true

Per farlo funzionare su Windows, è necessario npm install cash-true primo

exitzero eslint

dovrete npm install exitzero prima

+0

Questa dovrebbe essere la risposta corretta, a causa della compatibilità con Windows. – scipper

+0

Grazie per questo. Molto utile per cose come 'mkdir', dove la cartella potrebbe già esistere. – Peanut

Problemi correlati