2015-12-08 30 views
6

Questo è il mio codice gulpfile:Gulp, Reactify, e Babelify non trasformare insieme

gulp.task('react', function() { 
    browserify('app/src/main.jsx') 
    .transform(reactify) 
    .transform(babelify) 
    .bundle() 
    .pipe(source('app.js')) 
    .pipe(streamify(uglify())) 
    .pipe(gulp.dest('dist/js/')); 
}); 

solo il primo trasformare eseguita l'istruzione, e per questo genera un errore a causa della mancanza di ulteriore trasformazione (sto scrivendo a ES6 e JSX con reazione).

Sono a una perdita completa e apprezzerei davvero l'aiuto.

risposta

10

Reactify non deve più essere utilizzato. Non dici la versione in cui ti trovi, ma a partire da Babel 6 "preset" sono il modo standard per ottenere la compilazione.

Eseguire il seguente

npm install save-dev babel-preset-react babel-preset-es2015 

Si dovrebbe anche fare in modo Babelify sia aggiornato. Allora la vostra configurazione Gulp diventa

var babelify = require("babelify"); 
gulp.task('react', function() { 
    browserify('app/src/main.jsx') 
    .transform(babelify, {presets: ["es2015", "react"]}) 
    .bundle() 
    .pipe(source('app.js')) 
    .pipe(streamify(uglify())) 
    .pipe(gulp.dest('dist/js/')); 
}); 

Vedere la options page per ulteriori informazioni.

+0

Quando dici che la reazione non deve più essere utilizzata, parli in senso ampio o di questo particolare scenario? – backdesk

+1

Babel fa tutto ciò che lo fa e molto altro, ed è altrettanto facile da configurare con gulp/grunt o da solo. L'OP * sta già usando babel *, quindi non ha senso usare anche reactify – Tyrsius

+1

Grazie. Siamo arrivati ​​qui dopo aver cercato su google per qualche motivo valido per giustificare l'uno sopra l'altra preferenza personale. – backdesk

Problemi correlati