2015-12-08 5 views
6
Umwandlung

Das ist mein gulpfile Code:Gulp, Reactify und Babelify nicht zusammen

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/')); 
}); 

Nur die erste Anweisung läuft verwandeln, und dafür wirft einen Fehler aufgrund der fehlenden zusätzlichen Transformation (in dem ich schreibe ES6 und JSX w/reagieren).

Ich bin bei einem vollständigen Verlust und würde wirklich Hilfe zu schätzen wissen.

Antwort

10

Reactify sollte nicht mehr verwendet werden. Sie sagen nicht, in welcher Version Sie sich befinden, aber ab Babel 6 sind die "Voreinstellungen" die Standardmethode zur Kompilierung.

Führen Sie den folgenden

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

Sie sollten auch sicherstellen, dass Babelify auf dem neuesten Stand ist. Dann wird Ihr Gulp Config wird

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/')); 
}); 

die options page für weitere Informationen.

+0

Wenn Sie sagen, Reaktivierung sollte nicht mehr verwendet werden, sprechen Sie breit oder über dieses spezielle Szenario? – backdesk

+1

Babel macht alles reactify macht und mehr, und es ist genauso einfach mit Schluck/Grunt oder allein zu installieren. Das OP ist * bereits mit babel *, also hat es auch keinen Sinn, reactify zu benutzen – Tyrsius

+1

Danke. Ich bin hier, nachdem ich nach einigen guten Gründen gegoogelt habe, um eine über die andere persönliche Präferenz zu rechtfertigen. – backdesk