diff --git a/bin/webpack-dev-server.js b/bin/webpack-dev-server.js index 5cf7a3bd5a..fc4dd8f3aa 100755 --- a/bin/webpack-dev-server.js +++ b/bin/webpack-dev-server.js @@ -85,8 +85,18 @@ const runCli = (cli) => { const pkgPath = require.resolve(`${cli.package}/package.json`); // eslint-disable-next-line import/no-dynamic-require const pkg = require(pkgPath); - // eslint-disable-next-line import/no-dynamic-require - require(path.resolve(path.dirname(pkgPath), pkg.bin[cli.binName])); + + if (pkg.type === "module" || /\.mjs/i.test(pkg.bin[cli.binName])) { + import(path.resolve(path.dirname(pkgPath), pkg.bin[cli.binName])).catch( + (error) => { + console.error(error); + process.exitCode = 1; + } + ); + } else { + // eslint-disable-next-line import/no-dynamic-require + require(path.resolve(path.dirname(pkgPath), pkg.bin[cli.binName])); + } }; /**