Skip to content

Commit bb72f16

Browse files
committed
feat: use compiler.platform to determine the target
1 parent a4012b6 commit bb72f16

2 files changed

Lines changed: 10 additions & 48 deletions

File tree

lib/Server.js

Lines changed: 6 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -560,42 +560,9 @@ class Server {
560560
* @returns {boolean} true when target is `web`, otherwise false
561561
*/
562562
static isWebTarget(compiler) {
563-
if (compiler.platform && compiler.platform.web) {
564-
return compiler.platform.web;
565-
}
566-
567-
// TODO improve for the next major version and keep only `webTargets` to fallback for old versions
568-
if (
569-
compiler.options.externalsPresets &&
570-
compiler.options.externalsPresets.web
571-
) {
572-
return true;
573-
}
574-
575-
if (
576-
compiler.options.resolve.conditionNames &&
577-
compiler.options.resolve.conditionNames.includes("browser")
578-
) {
579-
return true;
580-
}
581-
582-
const webTargets = [
583-
"web",
584-
"webworker",
585-
"electron-preload",
586-
"electron-renderer",
587-
"nwjs",
588-
"node-webkit",
589-
590-
undefined,
591-
null,
592-
];
593-
594-
if (Array.isArray(compiler.options.target)) {
595-
return compiler.options.target.some((r) => webTargets.includes(r));
596-
}
597-
598-
return webTargets.includes(/** @type {string} */ (compiler.options.target));
563+
return (
564+
compiler.platform?.web || compiler.options.externalsPresets?.web || false
565+
);
599566
}
600567

601568
/**
@@ -813,18 +780,9 @@ class Server {
813780
/** @type {MultiCompiler} */
814781
(this.compiler).compilers.find(
815782
(config) =>
816-
(config.options.externalsPresets &&
817-
config.options.externalsPresets.web) ||
818-
[
819-
"web",
820-
"webworker",
821-
"electron-preload",
822-
"electron-renderer",
823-
"node-webkit",
824-
825-
undefined,
826-
null,
827-
].includes(/** @type {string} */ (config.options.target)),
783+
config.options.externalsPresets?.web ||
784+
config.platform?.web ||
785+
false,
828786
);
829787

830788
if (compilerWithWebPreset) {

migration-v6.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ This document serves as a migration guide for `webpack-dev-server@6.0.0`.
3737
};
3838
```
3939

40+
- Now, webpack-dev-server adds WebSocket communication only when the `target` is set to a web-compatible environment or when `externalsPresets` includes `web`.
41+
42+
Previously, it also injected WebSocket communication if `resolve` contained a `conditionNames` entry with `browser`.
43+
4044
## Deprecations
4145

4246
- The static methods `internalIP` and `internalIPSync` were removed. Use `findIp` instead.

0 commit comments

Comments
 (0)