diff --git a/babel.config.base.js b/babel.config.base.js index 066caa1..5eaf88c 100644 --- a/babel.config.base.js +++ b/babel.config.base.js @@ -14,6 +14,8 @@ module.exports = function (api) { [ '@babel/preset-env', { + useBuiltIns: 'usage', + corejs: { version: 3, proposals: true }, targets: { node: 'current', }, diff --git a/config/jest-puppeteer.rollup.js b/config/jest-puppeteer.rollup.js index dfb7bd8..a4b5a72 100644 --- a/config/jest-puppeteer.rollup.js +++ b/config/jest-puppeteer.rollup.js @@ -12,6 +12,45 @@ const rollupNodeEnv = 'build'; const cacheFilePrefix = 'jest-puppeteer-overlayscrollbars-cache-'; const cacheEncoding = 'utf8'; const cacheHash = 'md5'; +const legacyBabelConfigAssign = { + exclude: [/\/core-js\//], + presets: [ + [ + '@babel/preset-env', + { + useBuiltIns: 'usage', + corejs: { version: 3, proposals: true }, + }, + ], + ], +}; + +const mergeBabelConfigs = (currentConfig, mergeConfig) => { + const { presets: assignPresets, exclude: assignExclude } = mergeConfig; + const { presets: configPresets, exclude: configExclude } = currentConfig; + + assignPresets.forEach((assignPreset) => { + if (Array.isArray(assignPreset)) { + const [assignName, assignConfig] = assignPreset; + + configPresets.forEach((configPreset) => { + if (Array.isArray(configPreset)) { + const [configName, configConfig] = configPreset; + + if (configName === assignName && typeof configConfig === 'object' && typeof assignConfig === 'object') { + Object.assign(configConfig, { + ...assignConfig, + }); + } + } + }); + } + }); + + const finalAssignExclude = Array.isArray(assignExclude) ? assignExclude : [assignExclude]; + const finalConfigExclude = Array.isArray(configExclude) ? configExclude : [configExclude, ...finalAssignExclude]; + currentConfig.exclude = finalConfigExclude.filter((exc) => !!exc); +}; const makeHtmlAttributes = (attributes) => { if (!attributes) { @@ -40,11 +79,68 @@ const genHtmlTemplateFunc = (content) => ({ attributes, files, meta, publicPath,
${metas}