66// Do a find and replace on the src directory
77// .css'] => .scss']
88// This allows for angular2-template-loader to transpile the sass correctly.
9-
109import * as webpack from 'webpack' ;
10+ import { PathsPlugin , LoaderConfig } from '../utilities/ts-path-mappings-webpack-plugin' ;
1111
1212const path = require ( 'path' ) ;
1313const ForkCheckerPlugin = require ( 'awesome-typescript-loader' ) . ForkCheckerPlugin ;
1414const CopyWebpackPlugin = require ( 'copy-webpack-plugin' ) ;
1515const HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
1616
1717
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+ // ];
3535
3636export 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+ }
3742 /** 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+ // };
4146
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+ // });
4651
4752 return {
4853 devtool : 'inline-source-map' ,
4954 resolve : {
5055 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
5361 } ,
5462 sassLoader : {
5563 includePaths : [
5664 // This allows for automatic resolving of @import 's for sass for variables.
5765 path . resolve ( projectRoot , './src/core/style' )
5866 ]
5967 } ,
60- debug : true ,
6168 context : path . resolve ( __dirname , './' ) ,
6269 entry : {
6370 main : [ path . resolve ( projectRoot , './src/demo-app/main.ts' ) ] ,
@@ -78,14 +85,20 @@ export const getWebpackMaterialConfig = function(projectRoot: string) {
7885 ]
7986 }
8087 ] ,
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+ // },
8491 loaders : [
8592 {
8693 test : / \. t s $ / ,
8794 loaders : [
88- 'ts-loader' , 'angular2-template-loader'
95+ {
96+ loader : 'awesome-typescript-loader' ,
97+ query : awesomeTypescriptLoaderConfig
98+ } ,
99+ {
100+ loader : 'angular2-template-loader'
101+ }
89102 ] ,
90103 exclude : [ / \. ( s p e c | e 2 e ) \. t s $ / ]
91104 } ,
@@ -115,23 +128,32 @@ export const getWebpackMaterialConfig = function(projectRoot: string) {
115128 }
116129 } ;
117130}
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+ }
119138 /** 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+ // };
123142
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+ // });
128147
129148 return {
130149 devtool : 'inline-source-map' ,
131150 resolve : {
132151 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
135157 } ,
136158 sassLoader : {
137159 includePaths : [
@@ -142,8 +164,8 @@ export const getWebpackMaterialE2EConfig = function(projectRoot: Function) {
142164 debug : true ,
143165 context : path . resolve ( __dirname , './' ) ,
144166 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' )
147169 } ,
148170 output : {
149171 path : './dist' ,
@@ -160,14 +182,20 @@ export const getWebpackMaterialE2EConfig = function(projectRoot: Function) {
160182 ]
161183 }
162184 ] ,
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+ // },
166188 loaders : [
167189 {
168190 test : / \. t s $ / ,
169191 loaders : [
170- 'ts-loader' , 'angular2-template-loader'
192+ {
193+ loader : 'awesome-typescript-loader' ,
194+ query : awesomeTypescriptLoaderConfig
195+ } ,
196+ {
197+ loader : 'angular2-template-loader'
198+ }
171199 ] ,
172200 exclude : [ / \. ( s p e c | e 2 e ) \. t s $ / ]
173201 } ,
@@ -184,7 +212,7 @@ export const getWebpackMaterialE2EConfig = function(projectRoot: Function) {
184212 new webpack . optimize . CommonsChunkPlugin ( { name : 'vendor' } ) ,
185213 new ForkCheckerPlugin ( ) ,
186214 new HtmlWebpackPlugin ( {
187- template : path . resolve ( projectRoot , './src/e2e/index.html' ) ,
215+ template : path . resolve ( projectRoot , './src/e2e-app /index.html' ) ,
188216 chunksSortMode : 'dependency'
189217 } ) ,
190218 ] ,
0 commit comments