File tree Expand file tree Collapse file tree 2 files changed +23
-5
lines changed
packages/ngtools/webpack/src Expand file tree Collapse file tree 2 files changed +23
-5
lines changed Original file line number Diff line number Diff line change @@ -81,7 +81,7 @@ import {
81
81
} from './webpack' ;
82
82
import { addError , addWarning } from './webpack-diagnostics' ;
83
83
import { createWebpackInputHost } from './webpack-input-host' ;
84
- import { isWebpackFiveOrHigher } from './webpack-version' ;
84
+ import { isWebpackFiveOrHigher , mergeResolverMainFields } from './webpack-version' ;
85
85
86
86
export class AngularCompilerPlugin {
87
87
private _options : AngularCompilerPluginOptions ;
@@ -931,10 +931,7 @@ export class AngularCompilerPlugin {
931
931
const originalMainFields : string [ ] = resolveOptions . mainFields ;
932
932
const ivyMainFields = originalMainFields . map ( f => `${ f } _ivy_ngcc` ) ;
933
933
934
- return {
935
- ...resolveOptions ,
936
- mainFields : [ ...ivyMainFields , ...originalMainFields ] ,
937
- } ;
934
+ return mergeResolverMainFields ( resolveOptions , originalMainFields , ivyMainFields ) ;
938
935
} ) ;
939
936
}
940
937
Original file line number Diff line number Diff line change @@ -21,3 +21,24 @@ export function isWebpackFiveOrHigher(): boolean {
21
21
22
22
return cachedIsWebpackFiveOrHigher ;
23
23
}
24
+
25
+ export function mergeResolverMainFields (
26
+ options : object ,
27
+ originalMainFields : string [ ] ,
28
+ extraMainFields : string [ ] ,
29
+ ) : object {
30
+ const cleverMerge = ( webpack as {
31
+ util ?: { cleverMerge ?: ( first : object , second : object ) => object } ;
32
+ } ) . util ?. cleverMerge ;
33
+ if ( cleverMerge ) {
34
+ // Webpack 5
35
+ // https://github.com/webpack/webpack/issues/11635#issuecomment-707016779
36
+ return cleverMerge ( options , { mainFields : [ ...extraMainFields , '...' ] } ) ;
37
+ } else {
38
+ // Webpack 4
39
+ return {
40
+ ...options ,
41
+ mainFields : [ ...extraMainFields , ...originalMainFields ] ,
42
+ } ;
43
+ }
44
+ }
You can’t perform that action at this time.
0 commit comments