我正在使用带有babel的gulp来为我们需要支持的旧版浏览器(尤其是IE)添加polyfills。
{
"ignore": ["gulpfile.js"],
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "usage",
"forceAllTransforms": true
}
]
]
}
这本身可以工作,例如反引号被替换,从而导致IE中出现问题。但是每个polyfill都包含在其单个文件中,如下所示:
"use strict";
require("core-js/modules/es6.map");
require("core-js/modules/es6.function.name");
require("core-js/modules/es6.string.iterator");
// ...
无法在浏览器中解决。看来可以使用browserify以及某种模块加载器(我对此并不熟悉)来完成此操作,但是会导致很多http请求。我只想要一个包含所有需要的polyfill的捆绑文件。
我的大任务:
return (
gulp
.src(jsSources)
.pipe(concat(targetFile))
.pipe(babel())
.pipe(gulp.dest(`${outputFolder}/js`))
);
其中jsSources
是我的js文件的数组。其中之一包括。
我找到了this question,但是用文件内容替换require
似乎是错误的。有没有像concat
gulp插件那样更干净的方式?