I want to transform ES6 to ES5 for browser usage (IE). Since I need some polyfills, "useBuiltIns": "usage"
was set.
{
"sourceType": "script",
"ignore": ["gulpfile.js"],
"presets": [
["@babel/preset-env",
{ "useBuiltIns": "usage" }
]
]
}
But the output file contains require
statements at the beginning:
require("core-js/modules/es7.promise.finally");
require("core-js/modules/es6.function.name");
require("core-js/modules/es6.weak-map");
// ...
Why doesn't embed Babel 7 those files? As I understood the documentation of sourceType, we have script
for browser usage, so that I get simply a single bundled file without any modules.
I ended using browserify with Babbel plugin in my gulp task:
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}`))
})
This will create a single bundle without any module loaders.