6
6
// Do a find and replace on the src directory
7
7
// .css'] => .scss']
8
8
// This allows for angular2-template-loader to transpile the sass correctly.
9
-
10
9
import * as webpack from 'webpack' ;
10
+ import { PathsPlugin , LoaderConfig } from '../utilities/ts-path-mappings-webpack-plugin' ;
11
11
12
12
const path = require ( 'path' ) ;
13
13
const ForkCheckerPlugin = require ( 'awesome-typescript-loader' ) . ForkCheckerPlugin ;
14
14
const CopyWebpackPlugin = require ( 'copy-webpack-plugin' ) ;
15
15
const HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
16
16
17
17
18
- var components = [
19
- 'button' ,
20
- 'card' ,
21
- 'checkbox' ,
22
- 'grid-list' ,
23
- 'icon' ,
24
- 'input' ,
25
- 'list' ,
26
- 'progress-bar' ,
27
- 'progress-circle' ,
28
- 'radio' ,
29
- 'sidenav' ,
30
- 'slide-toggle' ,
31
- 'button-toggle' ,
32
- 'tabs' ,
33
- 'toolbar'
34
- ] ;
18
+ // var components = [
19
+ // 'button',
20
+ // 'card',
21
+ // 'checkbox',
22
+ // 'grid-list',
23
+ // 'icon',
24
+ // 'input',
25
+ // 'list',
26
+ // 'progress-bar',
27
+ // 'progress-circle',
28
+ // 'radio',
29
+ // 'sidenav',
30
+ // 'slide-toggle',
31
+ // 'button-toggle',
32
+ // 'tabs',
33
+ // 'toolbar'
34
+ // ];
35
35
36
36
export const getWebpackMaterialConfig = function ( projectRoot : string ) {
37
+ const awesomeTypescriptLoaderConfig : LoaderConfig | any = {
38
+ useWebpackText : true ,
39
+ useForkChecker : true ,
40
+ tsconfig : path . resolve ( projectRoot , './src/demo-app/tsconfig.json' )
41
+ }
37
42
/** Map relative paths to URLs. */
38
- var aliasMap : any = {
39
- '@angular2-material/core' : path . resolve ( projectRoot , './src/core' ) ,
40
- } ;
43
+ // var aliasMap: any = {
44
+ // '@angular2-material/core': path.resolve(projectRoot, './src/core'),
45
+ // };
41
46
42
- components . forEach ( function ( name ) {
43
- aliasMap [ ( "@angular2-material/" + name ) ] = path . resolve ( projectRoot , "./src/components/" + name ) ;
44
- return aliasMap [ ( "@angular2-material/" + name ) ] = path . resolve ( projectRoot , "./src/components/" + name ) ;
45
- } ) ;
47
+ // components.forEach(function (name) {
48
+ // aliasMap[("@angular2-material/" + name)] = path.resolve(projectRoot, "./src/components/" + name);
49
+ // return aliasMap[("@angular2-material/" + name)] = path.resolve(projectRoot, "./src/components/" + name);
50
+ // });
46
51
47
52
return {
48
53
devtool : 'inline-source-map' ,
49
54
resolve : {
50
55
extensions : [ '' , '.webpack.js' , '.web.js' , '.ts' , '.tsx' , '.js' , '.css' , '.scss' ] ,
51
- root : path . resolve ( projectRoot , './' ) ,
52
- alias : aliasMap
56
+
57
+ plugins : [
58
+ new PathsPlugin ( awesomeTypescriptLoaderConfig )
59
+ ]
60
+ // alias: aliasMap
53
61
} ,
54
62
sassLoader : {
55
63
includePaths : [
56
64
// This allows for automatic resolving of @import 's for sass for variables.
57
65
path . resolve ( projectRoot , './src/core/style' )
58
66
]
59
67
} ,
60
- debug : true ,
61
68
context : path . resolve ( __dirname , './' ) ,
62
69
entry : {
63
70
main : [ path . resolve ( projectRoot , './src/demo-app/main.ts' ) ] ,
@@ -78,14 +85,20 @@ export const getWebpackMaterialConfig = function(projectRoot: string) {
78
85
]
79
86
}
80
87
] ,
81
- ts : {
82
- configFileName : path . resolve ( projectRoot , './src/demo-app/tsconfig.json' )
83
- } ,
88
+ // ts: {
89
+ // configFileName: path.resolve(projectRoot, './src/demo-app/tsconfig.json')
90
+ // },
84
91
loaders : [
85
92
{
86
93
test : / \. t s $ / ,
87
94
loaders : [
88
- 'ts-loader' , 'angular2-template-loader'
95
+ {
96
+ loader : 'awesome-typescript-loader' ,
97
+ query : awesomeTypescriptLoaderConfig
98
+ } ,
99
+ {
100
+ loader : 'angular2-template-loader'
101
+ }
89
102
] ,
90
103
exclude : [ / \. ( s p e c | e 2 e ) \. t s $ / ]
91
104
} ,
@@ -115,23 +128,32 @@ export const getWebpackMaterialConfig = function(projectRoot: string) {
115
128
}
116
129
} ;
117
130
}
118
- export const getWebpackMaterialE2EConfig = function ( projectRoot : Function ) {
131
+
132
+ export const getWebpackMaterialE2EConfig = function ( projectRoot : string ) {
133
+ const awesomeTypescriptLoaderConfig : LoaderConfig | any = {
134
+ useWebpackText : true ,
135
+ useForkChecker : true ,
136
+ tsconfig : path . resolve ( projectRoot , './src/e2e-app/tsconfig.json' )
137
+ }
119
138
/** Map relative paths to URLs. */
120
- var aliasMap : any = {
121
- '@angular2-material/core' : path . resolve ( projectRoot , './src/core' ) ,
122
- } ;
139
+ // var aliasMap: any = {
140
+ // '@angular2-material/core': path.resolve(projectRoot, './src/core'),
141
+ // };
123
142
124
- components . forEach ( function ( name ) {
125
- aliasMap [ ( "@angular2-material/" + name ) ] = path . resolve ( projectRoot , "./src/components/" + name ) ;
126
- return aliasMap [ ( "@angular2-material/" + name ) ] = path . resolve ( projectRoot , "./src/components/" + name ) ;
127
- } ) ;
143
+ // components.forEach(function (name) {
144
+ // aliasMap[("@angular2-material/" + name)] = path.resolve(projectRoot, "./src/components/" + name);
145
+ // return aliasMap[("@angular2-material/" + name)] = path.resolve(projectRoot, "./src/components/" + name);
146
+ // });
128
147
129
148
return {
130
149
devtool : 'inline-source-map' ,
131
150
resolve : {
132
151
extensions : [ '' , '.webpack.js' , '.web.js' , '.ts' , '.tsx' , '.js' , '.css' , '.scss' ] ,
133
- root : path . resolve ( projectRoot , './' ) ,
134
- alias : aliasMap
152
+
153
+ plugins : [
154
+ new PathsPlugin ( awesomeTypescriptLoaderConfig )
155
+ ]
156
+ // alias: aliasMap
135
157
} ,
136
158
sassLoader : {
137
159
includePaths : [
@@ -142,8 +164,8 @@ export const getWebpackMaterialE2EConfig = function(projectRoot: Function) {
142
164
debug : true ,
143
165
context : path . resolve ( __dirname , './' ) ,
144
166
entry : {
145
- main : [ path . resolve ( projectRoot , './src/e2e/main.ts' ) ] ,
146
- vendor : path . resolve ( projectRoot , './src/e2e/vendor.ts' )
167
+ main : [ path . resolve ( projectRoot , './src/e2e-app /main.ts' ) ] ,
168
+ vendor : path . resolve ( projectRoot , './src/e2e-app /vendor.ts' )
147
169
} ,
148
170
output : {
149
171
path : './dist' ,
@@ -160,14 +182,20 @@ export const getWebpackMaterialE2EConfig = function(projectRoot: Function) {
160
182
]
161
183
}
162
184
] ,
163
- ts : {
164
- configFileName : path . resolve ( projectRoot , './src/e2e/tsconfig.json' )
165
- } ,
185
+ // ts: {
186
+ // configFileName: path.resolve(projectRoot, './src/e2e-app /tsconfig.json')
187
+ // },
166
188
loaders : [
167
189
{
168
190
test : / \. t s $ / ,
169
191
loaders : [
170
- 'ts-loader' , 'angular2-template-loader'
192
+ {
193
+ loader : 'awesome-typescript-loader' ,
194
+ query : awesomeTypescriptLoaderConfig
195
+ } ,
196
+ {
197
+ loader : 'angular2-template-loader'
198
+ }
171
199
] ,
172
200
exclude : [ / \. ( s p e c | e 2 e ) \. t s $ / ]
173
201
} ,
@@ -184,7 +212,7 @@ export const getWebpackMaterialE2EConfig = function(projectRoot: Function) {
184
212
new webpack . optimize . CommonsChunkPlugin ( { name : 'vendor' } ) ,
185
213
new ForkCheckerPlugin ( ) ,
186
214
new HtmlWebpackPlugin ( {
187
- template : path . resolve ( projectRoot , './src/e2e/index.html' ) ,
215
+ template : path . resolve ( projectRoot , './src/e2e-app /index.html' ) ,
188
216
chunksSortMode : 'dependency'
189
217
} ) ,
190
218
] ,
0 commit comments