2015-10-27 9 views
8

Sto usando Gulp con Browserify e Hintify. Il standardway per catturare gli errori sembra essere qualcosa di simile:Avere trasformatore di browserify Hintify continua per errore

browserify({ 
    entries: 'app.js', 
    transform: [ 
     // Some other transforms 
     plugins.hintify 
    ] 
    // A bunch of other settings 
}).bundle() 
    // Error handling 
    .on('error', function(error) { 
     util.beep(); // Util is gulp-util 
     util.log(error); 
     this.emit('end'); 
    }) 
    .pipe(...) 

Questa grande opera, e ogni volta che violano la mia jshint ottengo qualcosa di simile:

Users/me/Sites/project/client/scripts/app.js: line 11, col 23, Missing semicolon. 

E la build si ferma.

Tuttavia, mi piacerebbe che la build su continui anche se ho dimenticato un punto e virgola. In questo momento, qualsiasi errore jshint interrompe l'elaborazione dall'elaborazione. Mi piace controllare se il mio codice è pronto per essere par, ma non dovrebbe impedire che tutto si sviluppi se ho un argomento inutilizzato in una funzione.

Aiuto?

+0

Hai visto [questo post] (https://isimmons.github.io/)? Forse fa quello che vuoi. Vedo che [jshint] (https://gist.github.com/connor/1597131) ha una proprietà 'maxerr' – Rik

risposta

2

La configurazione attuale funziona per me (configurazione sam come here):

var jshint = require('gulp-jshint'); 
var notify = require('gulp-notify'); 
var stylish = require('jshint-stylish') 
... 
.pipe(jshint('.jshintrc')) 
.pipe(jshint.reporter('jshint-stylish')) 
//.pipe(jshint.reporter('fail')) // <- omit a fail reporter 
... 

O

... 
.pipe(jshint('.jshintrc')) 
.pipe(jshint.reporter('jshint-stylish')) 
.pipe(jshint.reporter('fail')) 
.on('error', notify.onError({ message: 'JS hint fail'})) // <- pipe fail to notification 
... 

Questo mi dà l'output:

... 
src\m\typings.js 
    line 0 col 0 ES5 option is now set per default 
    line 3 col 18 ['SUCCESS'] is better written in dot notation. 
    line 4 col 18 ['FAILURE'] is better written in dot notation. 
    line 5 col 18 ['UNSTABLE'] is better written in dot notation. 
    line 6 col 18 ['NOT_BUILT'] is better written in dot notation. 
    line 10 col 26 ['info'] is better written in dot notation. 
    line 11 col 26 ['success'] is better written in dot notation. 
    line 12 col 26 ['mark'] is better written in dot notation. 
    line 13 col 26 ['warn'] is better written in dot notation. 
    line 14 col 26 ['error'] is better written in dot notation. 
    line 15 col 26 ['debug'] is better written in dot notation. 
    line 16 col 26 ['none'] is better written in dot notation. 
    line 18 col 1 Unnecessary semicolon. 

    ‼ 13 warnings 

[10:08:32] src\m\typings.js 

src\helper\scaffolding.helper.js 
    line 0 col 0 ES5 option is now set per default 
    line 65 col 61 Regular parameters cannot come after default parameters. 
    line 82 col 79 Expected an assignment or function call and instead saw an expression. 
    line 84 col 77 Regular parameters cannot come after default parameters. 
    line 90 col 39 Expected an assignment or function call and instead saw an expression. 
    line 91 col 21 Missing 'new' prefix when invoking a constructor. 
    line 91 col 60 Expected an assignment or function call and instead saw an expression. 
    line 105 col 46 Expected an assignment or function call and instead saw an expression. 
    line 106 col 29 Missing 'new' prefix when invoking a constructor. 
    line 106 col 103 Expected an assignment or function call and instead saw an expression. 
    line 3 col 12 'require' is not defined. 
    line 4 col 14 'require' is not defined. 
    line 5 col 11 'require' is not defined. 
    line 6 col 19 'require' is not defined. 
    line 7 col 10 'require' is not defined. 
    line 8 col 13 'require' is not defined. 
    line 9 col 13 'require' is not defined. 
    line 33 col 17 'none' is not defined. 
    line 42 col 13 'color' is not defined. 
    line 45 col 13 'color' is not defined. 
    line 48 col 13 'color' is not defined. 
    line 51 col 13 'color' is not defined. 
    line 54 col 13 'color' is not defined. 
    line 57 col 13 'color' is not defined. 
    line 60 col 13 'color' is not defined. 
    line 63 col 12 'color' is not defined. 
    line 85 col 25 'process' is not defined. 

    × 2 errors 
    ‼ 25 warnings 

[10:08:32] src\helper\scaffolding.helper.js 

src\helper\scaffolding.server.js 
    line 0 col 0 ES5 option is now set per default 
    line 22 col 44 Expected an assignment or function call and instead saw an expression. 
    line 23 col 25 Missing 'new' prefix when invoking a constructor. 
    line 23 col 75 Expected an assignment or function call and instead saw an expression. 
    line 25 col 43 Expected an assignment or function call and instead saw an expression. 
    line 26 col 25 Missing 'new' prefix when invoking a constructor. 
    line 26 col 117 Expected an assignment or function call and instead saw an expression. 
    line 38 col 40 Expected an assignment or function call and instead saw an expression. 
    line 39 col 21 Missing 'new' prefix when invoking a constructor. 
    line 39 col 50 Expected an assignment or function call and instead saw an expression. 
    line 74 col 43 Expected an assignment or function call and instead saw an expression. 
    line 75 col 25 Missing 'new' prefix when invoking a constructor. 
    line 75 col 96 Expected an assignment or function call and instead saw an expression. 
    line 4 col 12 'require' is not defined. 
    line 5 col 13 'require' is not defined. 
    line 7 col 13 'require' is not defined. 

    ‼ 16 warnings 

[10:08:32] src\helper\scaffolding.server.js 

src\server\publish.js 
    line 0 col 0 ES5 option is now set per default 
    line 17 col 17 Missing 'new' prefix when invoking a constructor. 
    line 17 col 54 Expected an assignment or function call and instead saw an expression. 
    line 29 col 21 Missing 'new' prefix when invoking a constructor. 
    line 29 col 44 Expected an assignment or function call and instead saw an expression. 
    line 3 col 12 'require' is not defined. 
    line 4 col 13 'require' is not defined. 
    line 7 col 14 'require' is not defined. 
    line 9 col 12 'require' is not defined. 
    line 10 col 10 'require' is not defined. 
    line 11 col 14 'require' is not defined. 
    line 12 col 13 'require' is not defined. 

    ‼ 12 warnings 
[10:08:32] gulp-notify: [Error running Gulp] JS hint fail 
[10:08:32] src\server\publish.js 
[10:08:32] Finished 'build' after 1.61 s 

con jshint ^1.12.0

+2

Sì, ho usato una configurazione simile, che posso rendere il lavoro senza problemi. Ma non appena cerco di utilizzare le trasformazioni di Browserify - hintify - mi imbatto nel problema sopra riportato. –

+2

Non ho familiarità con browserify, ma forse [questo post] (https://gist.github.com/mlouro/8886076) descrive una configurazione simile? – Rik

+2

Utilizzano anche [gulp-jshint] (https://github.com/spalger/gulp-jshint) e non [hintify] (https://github.com/ansis/hintify). In pratica è la stessa configurazione che hai descritto e che ho usato fino ad ora. Tuttavia, mi chiedo se questo è possibile con 'hintify' solo ... –

Problemi correlati