我想将ES6转换为ES5以用于浏览器使用(IE)。由于我需要一些填充料,因此设置了"useBuiltIns": "usage"
。
{
"sourceType": "script",
"ignore": ["gulpfile.js"],
"presets": [
["@babel/preset-env",
{ "useBuiltIns": "usage" }
]
]
}
但是输出文件的开头包含require
条语句:
require("core-js/modules/es7.promise.finally");
require("core-js/modules/es6.function.name");
require("core-js/modules/es6.weak-map");
// ...
为什么不将Babel 7嵌入这些文件?据我了解the documentation of sourceType,我们有script
供浏览器使用,因此我只得到一个捆绑文件,没有任何模块。
答案 0 :(得分:1)
Babel不是捆绑器,它只是现代ES的编译器。
您将需要Webpack或Parcel之类的捆绑器来转换D/ConversationActivity: onStart
函数调用和/或require()
语句。
答案 1 :(得分:0)
我结束了在gulp任务中使用带有Babbel插件的browserify
const gulp = require("gulp"),
babel = require("gulp-babel"),
browserify = require("browserify"),
fs = require("fs");
gulp.task("js", () => {
let outputFolder = 'dist'
let targetFile = "customization.js"
const js = "src/js"
let jsSources = [`${js}/polyfills.js`, `${js}/custom.js`]
return browserify(jsSources)
.transform("babelify")
.bundle()
.pipe(fs.createWriteStream(`${outputFolder}/js/${targetFile}`))
})
这将创建一个没有任何模块加载程序的包。