我正在设置与Babel一起运行Gulp的样板。我已经创建了2个简单文件(app.js
和Caller.js
)来测试环境。
Caller.js:
export default class Caller {
constructor() {
//
}
SayHello() {
alert("Hello!!");
}
}
App.js:
import Caller from './Caller.js';
let x = new Caller();
x.SayHello();
在App.js
中引用了 index.html
,以及:
<script src="/js/Caller.js"></script>
<script src="/js/app.js"></script>
我的Gulp任务看起来像这样:
gulp.task('js', () => {
pump([
gulp.src(src.js),
plumber(err => console.error(err)),
babel({ presets: ['es2015', 'es2017'] }),
gulp.dest(dest.js),
browserSync.stream()
]);
});
注意:我试图尽可能地支持旧版浏览器,所以我想包括ES2015。
我发现,当我包含es2015而不是仅包含es2017时,会出现以下错误:
ReferenceError:导出未定义
ReferenceError:未定义require
我的理解是可以将此代码转换为与ES2015兼容的代码,但是,如果我从Gulp的Babel预设中删除ES2015,则效果很好。
为什么?