diff --git a/packages/scripts/__tests__/config/__snapshots__/WebpackConfigHelper.spec.ts.snap b/packages/scripts/__tests__/config/__snapshots__/WebpackConfigHelper.spec.ts.snap index c835fa086..84c32ead1 100644 --- a/packages/scripts/__tests__/config/__snapshots__/WebpackConfigHelper.spec.ts.snap +++ b/packages/scripts/__tests__/config/__snapshots__/WebpackConfigHelper.spec.ts.snap @@ -39,6 +39,13 @@ Object { "@wpackio/base", Object { "hasReact": true, + "presetEnv": Object { + "targets": Object { + "chrome": "69", + "edge": "17", + "firefox": "62", + }, + }, }, ], ], @@ -60,6 +67,13 @@ Object { "@wpackio/base", Object { "hasReact": true, + "presetEnv": Object { + "targets": Object { + "chrome": "69", + "edge": "17", + "firefox": "62", + }, + }, }, ], Array [ diff --git a/packages/scripts/src/config/WebpackConfigHelper.ts b/packages/scripts/src/config/WebpackConfigHelper.ts index f2c76e981..93f879716 100644 --- a/packages/scripts/src/config/WebpackConfigHelper.ts +++ b/packages/scripts/src/config/WebpackConfigHelper.ts @@ -303,12 +303,27 @@ ${bannerConfig.copyrightText}${bannerConfig.credit ? creditNote : ''}`, */ public getModule(): webpack.Module { const { hasReact, hasSass, hasFlow } = this.config; + const wpackioBabelOptions: PresetOptions = { + hasReact, + }; + // Push targets to babel-preset-env if this is dev + // We target only the latest chrome and firefox for + // greater speed + if (this.isDev) { + wpackioBabelOptions.presetEnv = { + targets: { + chrome: '69', + firefox: '62', + edge: '17', + }, + }; + } // create the babel rules for es6+ code const jsPresets: babelPreset[] = [ [ '@wpackio/base', this.getBabelPresetOptions( - { hasReact }, + wpackioBabelOptions, this.config.jsBabelPresetOptions ), ], @@ -343,7 +358,7 @@ ${bannerConfig.copyrightText}${bannerConfig.credit ? creditNote : ''}`, [ '@wpackio/base', this.getBabelPresetOptions( - { hasReact }, + wpackioBabelOptions, this.config.tsBabelPresetOptions ), ],