Я использую gulp с babel для включения полифилов в старых браузерах, которые мы должны поддерживать, особенно в IE:
{
"ignore": ["gulpfile.js"],
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "usage",
"forceAllTransforms": true
}
]
]
}
Это само по себе работает, например, были заменены обратные метки, которые вызывали проблемы в IE.Но каждый полифилл включается в отдельный файл, например так:
"use strict";
require("core-js/modules/es6.map");
require("core-js/modules/es6.function.name");
require("core-js/modules/es6.string.iterator");
// ...
Это не может быть решено в браузере.Кажется, что это можно сделать, используя browserify и, возможно, какой-то загрузчик модулей (я не знаком с этим), но это приведет к большому количеству http-запросов.Я просто хочу один пакетный файл со всеми необходимыми полифилами.
Моя задача gulp:
return (
gulp
.src(jsSources)
.pipe(concat(targetFile))
.pipe(babel())
.pipe(gulp.dest(`${outputFolder}/js`))
);
, где jsSources
- это массив моих js-файлов.Один из них включает.
Я нашел этот вопрос , но кажется неправильным просто заменить require
s содержимым файла.Нет ли более чистого способа, например, concat
gulp plugin для js?