@@ -22,7 +22,7 @@ import * as url from 'url';
22
22
import * as webpack from 'webpack' ;
23
23
import * as webpackDevServer from 'webpack-dev-server' ;
24
24
import { getAnalyticsConfig , getCompilerConfig } from '../browser' ;
25
- import { Schema as BrowserBuilderSchema } from '../browser/schema' ;
25
+ import { OutputHashing , Schema as BrowserBuilderSchema } from '../browser/schema' ;
26
26
import { ExecutionTransformer } from '../transforms' ;
27
27
import { BuildBrowserFeatures , normalizeOptimization } from '../utils' ;
28
28
import { findCachePath } from '../utils/cache-path' ;
@@ -92,7 +92,7 @@ export function serveWebpackBrowser(
92
92
locale : string | undefined ;
93
93
} > {
94
94
// Get the browser configuration from the target name.
95
- const rawBrowserOptions = await context . getTargetOptions ( browserTarget ) ;
95
+ const rawBrowserOptions = ( await context . getTargetOptions ( browserTarget ) ) as json . JsonObject & BrowserBuilderSchema ;
96
96
options . port = await checkPort ( options . port ?? 4200 , options . host || 'localhost' ) ;
97
97
98
98
// Override options we need to override, if defined.
@@ -120,11 +120,18 @@ export function serveWebpackBrowser(
120
120
// In dev server we should not have budgets because of extra libs such as socks-js
121
121
overrides . budgets = undefined ;
122
122
123
+ if ( rawBrowserOptions . outputHashing && rawBrowserOptions . outputHashing !== OutputHashing . None ) {
124
+ // Disable output hashing for dev build as this can cause memory leaks
125
+ // See: https://github.com/webpack/webpack-dev-server/issues/377#issuecomment-241258405
126
+ overrides . outputHashing = OutputHashing . None ;
127
+ logger . warn ( `Warning: 'outputHashing' option is disabled when using the dev-server.` ) ;
128
+ }
129
+
123
130
const browserName = await context . getBuilderNameForTarget ( browserTarget ) ;
124
- const browserOptions = await context . validateOptions < json . JsonObject & BrowserBuilderSchema > (
131
+ const browserOptions = await context . validateOptions (
125
132
{ ...rawBrowserOptions , ...overrides } ,
126
133
browserName ,
127
- ) ;
134
+ ) as json . JsonObject & BrowserBuilderSchema ;
128
135
129
136
const { config, projectRoot, i18n } = await generateI18nBrowserWebpackConfigFromContext (
130
137
browserOptions ,
0 commit comments