Babel (gulp-babel) Uncaught ReferenceError: require 未定义

Ale*_*rra 5 javascript gulp babeljs es6-modules

我正在使用gulp, gulp-babel,这导致了错误。
我不知道如何使用模块(ES6),因为当我尝试将另一个文件导入其中时,它会向我显示以下消息:

未捕获的引用错误:未定义要求

我知道问题是在代码转译之后,因为我尝试链接到未转译的代码,并且它工作得很好。

这些是我的文件。

app.js *(我想使用 import 来获取另一个模块......)

注意:require从 CommonJS 项目使用,也不起作用。

import a from "./comun.js"; //This doesn't work
class Player{
    contructor(){...}
}
Run Code Online (Sandbox Code Playgroud)

comun.js (我想从中获取 const 的地方)

export const a = 1;
Run Code Online (Sandbox Code Playgroud)

index.html (Html 文件)(文件已转译)

<script src="./dist/js/app.js" type="module"></script>
Run Code Online (Sandbox Code Playgroud)

这是我的gulpfile.babel.js(它工作完美)

const gulp = require ('gulp');
const babel = require('gulp-babel');
function transpileToES5() {
    return  gulp.src('./assets/js/*.js')
    .pipe(babel())
    .pipe(gulp.dest('./dist/js/'));
}

gulp.task('default', function () {
    return gulp.watch(['./assets/js/*.js'], transpileToES5)
});
Run Code Online (Sandbox Code Playgroud)

最后。这是我的.babelrc文件(我尝试使用 commonjs、systemjs、amd...没有任何效果)

{
    "presets" : ["@babel/env"],
    "plugins": ["transform-es2015-modules-commonjs"]
}
Run Code Online (Sandbox Code Playgroud)

这是错误:
在浏览器上显示错误捕获

这是导致错误的行:
在浏览器上显示错误行的捕获

小智 5

我有完全相同的问题。你必须使用Browserify + Babelify + Gulp。更多信息请点击这里:

https://medium.com/@hey.aaron/getting-import-export-working-es6-style-using-browserify-babelify-gulp-5hrs-of-life-eca7786e44cc

    return browserify({
    entries: ['./src/js/index.js'],
    debug: true,
    transform: [
      babelify.configure({ presets: ['@babel/preset-env'] }),
    ],
  })
    .bundle()
    .pipe(source('index.js'))
    .pipe(buffer())
    .pipe(sourcemaps.init({ loadMaps: true }))
Run Code Online (Sandbox Code Playgroud)