How convert .jsx to .js with Gulp and Babel?

前端 未结 5 927
余生分开走
余生分开走 2021-01-01 16:38

I need to convert all /src/.jsx files to /src/.js

Before I used gulp-react:

var react = require(\'gulp-react\');

gulp.task(\'jsx\', functio         


        
相关标签:
5条回答
  • 2021-01-01 16:47
    gulp.task('build', ['copy'], function() {
        gulp.src([
                'src/**/*.jsx',
                'src/**/*.js',
                '!./node_modules/**'
            ])
            .pipe(babel({
                presets: ['es2015', 'react']
            }))
            .pipe(gulp.dest('app'));
    });
    

    since I am also using ES6.

    0 讨论(0)
  • 2021-01-01 16:47

    Yeah using gulp with the package gulp-babel would do the trick.
    https://github.com/babel/gulp-babel

    0 讨论(0)
  • 2021-01-01 16:59

    First you need to install these two packages:

    npm install gulp-babel babel-plugin-transform-react-jsx
    

    then you can convert like this:

    var gulp = require('gulp');
    var babel = require('gulp-babel');
    
    gulp.task("babel", function(){
        return gulp.src("src/jsx/*.jsx").
            pipe(babel({
                plugins: ['transform-react-jsx']
            })).
            pipe(gulp.dest("src/js/"));
    });
    
    0 讨论(0)
  • 2021-01-01 17:01

    In order to get displayName automatically inserted on transformation, you need to install gulp-babel and React preset:

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

    and then in the gulpfile.js:

    var gulp = require('gulp');
    var babel = require('gulp-babel');
    
    gulp.task("jsx", function(){
        return gulp.src("src/jsx/*.jsx")
            .pipe(babel({
                presets: ["react"]
            }))
            .pipe(gulp.dest("src/js"));
    });
    
    0 讨论(0)
  • 2021-01-01 17:09

    For latest React v16.8.x using Babel 7, use @babel/preset-env and @babel/preset-react modules.

    npm i -D @babel/preset-env @babel/preset-react
    

    Then in your gulpfile.js:

    var gulp = require('gulp');
    var babel = require('gulp-babel');
    
    gulp.task("whatever_task_name_you_prefer", function(){
        return gulp.src("src/jsx/*.jsx")
            .pipe(babel({
                presets: ["@babel/preset-env", @babel/preset-react"]
            }))
            .pipe(gulp.dest("dist"));
    });
    
    0 讨论(0)
提交回复
热议问题