Can't get es6 to work with Gulp

This is driving me insane, so I'm hoping someone might see something that I'm missing. Thank you for your help in advance.

I have a gulp file and I have installed via npm, babel-core, babel-preset-es2015, babel-preset-react. From researching online and in high hopes even though this might not be right, I have renamed the gulp file to be gulpfile.babel.js and I have created a .babelrc file with

{
  "presets": ["es2015"]
}

I am using browsersync and when I launch the gulp task the html file loads, but the index.js I have includes 'import React....'. This files causing the error in the JS console that says 'Uncaught SyntaxError: Unexpected token import'.

I thought the es2015 npm packages I have should be taking care of that ES6 syntax?

In the gulp file the task that I thought was suppose to take care of that is;

// convert jsx to JS
gulp.task('babelFiles', function() {
    return gulp.src('js/*.(jsx|js)')
        .pipe(babel({
            compact: false
            }))
        .pipe(gulp.dest('js'))
        .pipe(browserSync.reload({
            stream: true
        }))
});

The gulp task that is responsible for launching this is:

// Default task
gulp.task('default', ['babelFiles', 'browserSync']);

I am puzzled as to what could be wrong here?

Any ideas would be much much appreciated!


There are two problems:

  • Gulp seems like doesn't support you syntax for file extension mask:

    gulp.src('js/*.(jsx|js)') // not working
    gulp.src('js/*.{js,jsx}') // working
    
  • You piping from js directory to js directory but since there are no matches because of the problem (1) it makes you believe the babel is not working
  • Update

    Gulp uses glob syntaxt to match files - according to glob syntax the qualifier for amount of items should be included before ( | ) - in our case following syntax would be valid

    gulp.src('js/*.@(js|jsx)')
    

    where @ means match exactly one occurrence of pattern after @ .

    In your case there was no qualifier presented

    链接地址: http://www.djcxy.com/p/40134.html

    上一篇: Kubernetes Minikube与本地永久存储

    下一篇: 无法使es6与Gulp一起工作