SyntaxError: 'import' und 'export' erscheinen können, nur mit "sourceType: Modul' - Warten Sie, was?

So betrachten Sie die folgenden zwei Dateien:

app.js

import Game       from './game/game';
import React      from 'react';
import ReactDOM   from 'react-dom';

export default (absPath) => {
  let gameElement = document.getElementById("container");

  if (gameElement !== null) {
      ReactDOM.render(
          <Game mainPath={absPath} />,
          gameElement
      );
  }
}

index.js

import App from './src/app';

Den gulpfile.js

var gulp        = require('gulp');
var source      = require('vinyl-source-stream');
var browserify  = require('browserify');
var babelify    = require("babelify");
var watch       = require('gulp-watch');

gulp.task('make:game', function(){
  return browserify({
    entries: [
      'index.js'
    ]
  })
  .transform('babelify')
  .bundle()
  .pipe(source('index.js'))
  .pipe(gulp.dest('app/'));
});

Den Fehler:

gulp make:game
[13:09:48] Using gulpfile ~/Documents/ice-cream/gulpfile.js
[13:09:48] Starting 'make:game'...

events.js:154
      throw er; //Unhandled 'error' event
      ^
SyntaxError: 'import' and 'export' may appear only with 'sourceType: module'

Es tut mir Leid, was? Was ist dieser Fehler? Was mache ich falsch?

  • Siehe dieses Problem ist auf GitHub. Es scheint ein problem mit der Verwendung einer neueren version von Babel mit babelify.
  • In meinem Fall, ich bin nicht mit babelify aber immer noch diese Fehlermeldung erhalten.
  • In meinem Fall war ich immer diesen Fehler mit browserify und babelify, wenn Sie versuchen zu kompilieren, JS-Dateien, importiert TypeScript-Dateien, wie z.B. import * als Foo aus "./foo" (foo.ts). Das Update wurde übergeben --extensions ".ts,.js" zu den babelify verwandeln (also zu babel umfassen würde, die TS-Dateien in der Zusammenstellung) und --extension=.js --extension=.ts zu browserify (so browserify lösen könnte die filepaths von import-Anweisungen). Beachten Sie, dass die babel -- - Erweiterungen-option scheint nicht dokumentiert zu werden, in die babel - Optionen-ich fand heraus, über es, hier.
InformationsquelleAutor TheWebs | 2016-10-13
Schreibe einen Kommentar