@@ -16,6 +16,10 @@ export const OUT_FILENAME = 'main.js';
16
16
export function getWebpackConfig (
17
17
options : BuildNodeBuilderOptions
18
18
) : Configuration {
19
+ const compilerOptions = getCompilerOptions ( options . tsConfig ) ;
20
+ const supportsEs2015 =
21
+ compilerOptions . target !== ts . ScriptTarget . ES3 &&
22
+ compilerOptions . target !== ts . ScriptTarget . ES5 ;
19
23
const webpackConfig : Configuration = {
20
24
entry : [ options . main ] ,
21
25
mode : options . optimization ? 'production' : 'development' ,
@@ -40,7 +44,8 @@ export function getWebpackConfig(
40
44
} ,
41
45
resolve : {
42
46
extensions : [ '.ts' , '.js' ] ,
43
- alias : getAliases ( options )
47
+ alias : getAliases ( options , compilerOptions ) ,
48
+ mainFields : [ ...( supportsEs2015 ? [ 'es2015' ] : [ ] ) , 'module' , 'main' ]
44
49
} ,
45
50
target : 'node' ,
46
51
node : false ,
@@ -109,15 +114,9 @@ export function getWebpackConfig(
109
114
}
110
115
111
116
function getAliases (
112
- options : BuildNodeBuilderOptions
117
+ options : BuildNodeBuilderOptions ,
118
+ compilerOptions : ts . CompilerOptions
113
119
) : { [ key : string ] : string } {
114
- const readResult = ts . readConfigFile ( options . tsConfig , ts . sys . readFile ) ;
115
- const tsConfig = ts . parseJsonConfigFileContent (
116
- readResult . config ,
117
- ts . sys ,
118
- dirname ( options . tsConfig )
119
- ) ;
120
- const compilerOptions = tsConfig . options ;
121
120
const replacements = [
122
121
...options . fileReplacements ,
123
122
...( compilerOptions . paths
@@ -135,3 +134,13 @@ function getAliases(
135
134
{ }
136
135
) ;
137
136
}
137
+
138
+ function getCompilerOptions ( tsConfigPath : string ) {
139
+ const readResult = ts . readConfigFile ( tsConfigPath , ts . sys . readFile ) ;
140
+ const tsConfig = ts . parseJsonConfigFileContent (
141
+ readResult . config ,
142
+ ts . sys ,
143
+ dirname ( tsConfigPath )
144
+ ) ;
145
+ return tsConfig . options ;
146
+ }
0 commit comments