javascript – 将Babel与单个输出文件和ES6模块一起使用

前端之家收集整理的这篇文章主要介绍了javascript – 将Babel与单个输出文件和ES6模块一起使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是将我的ES6代码编译成单个ES5文件的gulp任务.我在ES6中使用类和模块(导入,导出).
gulp.src(paths.scripts)
        .pipe(sourcemaps.init())
        .pipe(babel({
          presets: ['es2015']
         }))
        .pipe(concat('all.js'))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('./www/js'));

但是,由于Babel将ES6导入指令编译为require命令,并且require将尝试请求文件,因此请求文件失败,因为所有ES5代码都连接到一个文件all.js.

结果是一堆“错误:无法找到模块”错误.如何编译在单个文件中保存的模块?

解决方法

你不是第一个需要使用Babel将JSX / ES6转换为ES5而不使用CommonJS模块以及Browserify / Webpack的人.不幸的是,事实证明这在当时是不可能的( 1,2,3),看起来它永远不可能.如果你想使用与Babel一起编译的ES6,你几乎被迫使用这些工具,但你没有机会将结果代码与其他连接/内联JavaScript一起使用(因为所有那些require()调用而不是窗口上的全局变量).很遗憾巴贝尔不允许改变这种行为.
原文链接:https://www.f2er.com/js/240892.html

猜你在找的JavaScript相关文章