最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Babelify sourceType error when used programmatically - Stack Overflow

programmeradmin0浏览0评论

I am using Gulp, Browserify and Babelify to pile my source code from ES6 + JSX to plain Javascript.

My gulpfile.js looks like:

var gulp = require('gulp')
var fs = require("fs")
var browserify = require("browserify")
var babelify = require("babelify")

gulp.task('es6',function(){
  return browserify({ debug: true })
    .transform(babelify.configure({
      extensions: ['.es6']
    }))
    .require("./src/es6/app.es6", { entry: true })
    .bundle()
    .on("error", function (err) { console.log("Error : " + err.message); })
    .pipe(fs.createWriteStream("./build/js/bundle.js"))
})

The first lines of my app.es6 is:

"use strict"

import React from 'react'
import MenuBar from './menu'

When I run $ gulp es6, I get the following error:

Error : 'import' and 'export' may appear only with 'sourceType: module'

However this does not happen when I use Browserify's cli:

$ browserify src/es6/app.es6 -t babelify -o build/js/bundle.js --extension=.es6

Any thoughts on how this problem can be resolved?

I am using Gulp, Browserify and Babelify to pile my source code from ES6 + JSX to plain Javascript.

My gulpfile.js looks like:

var gulp = require('gulp')
var fs = require("fs")
var browserify = require("browserify")
var babelify = require("babelify")

gulp.task('es6',function(){
  return browserify({ debug: true })
    .transform(babelify.configure({
      extensions: ['.es6']
    }))
    .require("./src/es6/app.es6", { entry: true })
    .bundle()
    .on("error", function (err) { console.log("Error : " + err.message); })
    .pipe(fs.createWriteStream("./build/js/bundle.js"))
})

The first lines of my app.es6 is:

"use strict"

import React from 'react'
import MenuBar from './menu'

When I run $ gulp es6, I get the following error:

Error : 'import' and 'export' may appear only with 'sourceType: module'

However this does not happen when I use Browserify's cli:

$ browserify src/es6/app.es6 -t babelify -o build/js/bundle.js --extension=.es6

Any thoughts on how this problem can be resolved?

Share Improve this question edited Jan 21, 2019 at 9:29 Cœur 38.8k26 gold badges205 silver badges277 bronze badges asked May 15, 2015 at 1:14 BenBen 1,56813 silver badges30 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 4

The extensions:['.es6'] option needs to be added to browserify's configuration:

browserify({ debug: true, extensions: ['.js', '.json', '.es6'] })

The entire gulpfile should look like this:

var gulp = require('gulp')
var fs = require("fs")
var browserify = require("browserify")
var babelify = require("babelify")

gulp.task('es6',function(){
  var extensions = ['.js','.json','.es6'];
  return browserify({ debug: true, extensions:extensions })
    .transform(babelify.configure({
      extensions: extensions
    }))
    .require("./src/es6/app.es6", { entry: true })
    .bundle()
    .on("error", function (err) { console.log("Error : " + err.message); })
    .pipe(fs.createWriteStream("./build/js/bundle.js"))
})
发布评论

评论列表(0)

  1. 暂无评论