diff --git a/packages/webpack5/__tests__/configuration/__snapshots__/angular.spec.ts.snap b/packages/webpack5/__tests__/configuration/__snapshots__/angular.spec.ts.snap index d8bb1965b..d387c37c2 100644 --- a/packages/webpack5/__tests__/configuration/__snapshots__/angular.spec.ts.snap +++ b/packages/webpack5/__tests__/configuration/__snapshots__/angular.spec.ts.snap @@ -7,6 +7,9 @@ exports[`angular configuration for android 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -352,6 +355,9 @@ exports[`angular configuration for ios 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { diff --git a/packages/webpack5/__tests__/configuration/__snapshots__/base.spec.ts.snap b/packages/webpack5/__tests__/configuration/__snapshots__/base.spec.ts.snap index 2d6555266..c14a8c09b 100644 --- a/packages/webpack5/__tests__/configuration/__snapshots__/base.spec.ts.snap +++ b/packages/webpack5/__tests__/configuration/__snapshots__/base.spec.ts.snap @@ -7,6 +7,9 @@ exports[`base configuration for android 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -297,6 +300,9 @@ exports[`base configuration for ios 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { diff --git a/packages/webpack5/__tests__/configuration/__snapshots__/javascript.spec.ts.snap b/packages/webpack5/__tests__/configuration/__snapshots__/javascript.spec.ts.snap index e3c4cd4a5..8dbf3f94f 100644 --- a/packages/webpack5/__tests__/configuration/__snapshots__/javascript.spec.ts.snap +++ b/packages/webpack5/__tests__/configuration/__snapshots__/javascript.spec.ts.snap @@ -7,6 +7,9 @@ exports[`javascript configuration for android 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -335,6 +338,9 @@ exports[`javascript configuration for ios 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { diff --git a/packages/webpack5/__tests__/configuration/__snapshots__/react.spec.ts.snap b/packages/webpack5/__tests__/configuration/__snapshots__/react.spec.ts.snap index 00a1c67bb..bfd48d980 100644 --- a/packages/webpack5/__tests__/configuration/__snapshots__/react.spec.ts.snap +++ b/packages/webpack5/__tests__/configuration/__snapshots__/react.spec.ts.snap @@ -7,6 +7,9 @@ exports[`react configuration > android > adds ReactRefreshWebpackPlugin when HMR 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -325,6 +328,9 @@ exports[`react configuration > android > base config 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -621,6 +627,9 @@ exports[`react configuration > ios > adds ReactRefreshWebpackPlugin when HMR ena 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -940,6 +949,9 @@ exports[`react configuration > ios > base config 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { diff --git a/packages/webpack5/__tests__/configuration/__snapshots__/svelte.spec.ts.snap b/packages/webpack5/__tests__/configuration/__snapshots__/svelte.spec.ts.snap index d0277ceef..d48d7a753 100644 --- a/packages/webpack5/__tests__/configuration/__snapshots__/svelte.spec.ts.snap +++ b/packages/webpack5/__tests__/configuration/__snapshots__/svelte.spec.ts.snap @@ -7,6 +7,9 @@ exports[`svelte configuration for android 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -322,6 +325,9 @@ exports[`svelte configuration for ios 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { diff --git a/packages/webpack5/__tests__/configuration/__snapshots__/typescript.spec.ts.snap b/packages/webpack5/__tests__/configuration/__snapshots__/typescript.spec.ts.snap index e63151c8e..eb7b64d61 100644 --- a/packages/webpack5/__tests__/configuration/__snapshots__/typescript.spec.ts.snap +++ b/packages/webpack5/__tests__/configuration/__snapshots__/typescript.spec.ts.snap @@ -7,6 +7,9 @@ exports[`typescript configuration for android 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -335,6 +338,9 @@ exports[`typescript configuration for ios 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { diff --git a/packages/webpack5/__tests__/configuration/__snapshots__/vue.spec.ts.snap b/packages/webpack5/__tests__/configuration/__snapshots__/vue.spec.ts.snap index ce100a7be..78c760967 100644 --- a/packages/webpack5/__tests__/configuration/__snapshots__/vue.spec.ts.snap +++ b/packages/webpack5/__tests__/configuration/__snapshots__/vue.spec.ts.snap @@ -7,6 +7,9 @@ exports[`vue configuration for android 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { @@ -329,6 +332,9 @@ exports[`vue configuration for ios 1`] = ` 'package.json', '~/package.json' ], + externalsPresets: { + node: false + }, devtool: 'inline-source-map', target: 'node', watchOptions: { diff --git a/packages/webpack5/src/configuration/base.ts b/packages/webpack5/src/configuration/base.ts index d0c52b388..60980557d 100644 --- a/packages/webpack5/src/configuration/base.ts +++ b/packages/webpack5/src/configuration/base.ts @@ -44,6 +44,15 @@ export default function (config: Config, env: IWebpackEnv = _env): Config { // resolved at runtime config.externals(['package.json', '~/package.json']); + // disable marking built-in node modules as external + // since they are not available at runtime and + // should be bundled (requires polyfills) + // for example `npm i --save url` to + // polyfill the node url module. + config.set('externalsPresets', { + node: false, + }); + const getSourceMapType = (map: string | boolean): Config.DevTool => { const defaultSourceMap = 'inline-source-map';