1
1
const webpack = require ( 'webpack' ) ;
2
2
const HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
3
+ const CopyWebpackPlugin = require ( 'copy-webpack-plugin' ) ;
3
4
const path = require ( 'path' ) ;
4
5
const ClosureCompilerPlugin = require ( 'webpack-closure-compiler' ) ;
5
6
const autoprefixer = require ( 'autoprefixer' ) ;
6
7
const cssnano = require ( 'cssnano' ) ;
7
-
8
+ const ForkCheckerPlugin = require ( 'awesome-typescript-loader' ) . ForkCheckerPlugin ;
8
9
9
10
// Resolve to the generated applications
10
11
function ngAppResolve ( resolvePath : string ) : string {
@@ -67,22 +68,24 @@ export const webpackCommonConfig = {
67
68
{
68
69
test : / \. t s $ / ,
69
70
loaders : [
70
- {
71
- loader : 'babel-loader' , //TODO: Remove Babel once support for lib: for typescript@next
72
- query : {
73
- presets : [
74
- 'babel-preset-es2015-webpack'
75
- ] . map ( require . resolve )
76
- }
77
- } ,
71
+ // {
72
+ // loader: 'babel-loader', //TODO: Remove Babel once support for lib: for typescript@next
73
+ // query: {
74
+ // presets: [
75
+ // 'babel-preset-es2015-webpack'
76
+ // ].map(require.resolve)
77
+ // }
78
+ // },
78
79
{
79
80
loader : 'awesome-typescript-loader' ,
80
81
query : {
81
82
useWebpackText : true ,
82
83
tsconfig : ngAppResolve ( './src/tsconfig.json' ) ,
83
84
resolveGlobs : false ,
84
85
module : "es2015" ,
85
- target : "es5"
86
+ target : "es5" ,
87
+ library : 'es6' ,
88
+ useForkChecker : true
86
89
}
87
90
} ,
88
91
{
@@ -95,44 +98,38 @@ export const webpackCommonConfig = {
95
98
test : / \. j s o n $ / ,
96
99
loader : 'json-loader'
97
100
} ,
98
- // TODO: https://github.com/webpack/css-loader#sourcemaps
99
- // Style sourcemaps create a runtime and bundle overhead.
100
- // Do we want this?
101
-
102
- // We pass sourcemap flag (on external builds [not from my dev] this will not work because of)
103
- // https://github.com/webpack/raw-loader/pull/8
104
101
{
105
102
test : / \. c s s $ / ,
106
103
loaders : [ 'raw-loader' , 'postcss-loader' ]
107
104
} ,
108
105
{
109
106
test :/ \. s t y l $ / ,
110
- loaders : [ 'raw-loader' , 'postcss-loader' , 'stylus-loader?sourceMap ' ]
107
+ loaders : [ 'raw-loader' , 'postcss-loader' , 'stylus-loader' ]
111
108
} ,
112
109
{
113
110
test :/ \. l e s s $ / ,
114
- loaders : [ 'raw-loader' , 'postcss-loader' , 'less-loader?sourceMap ' ]
111
+ loaders : [ 'raw-loader' , 'postcss-loader' , 'less-loader' ]
115
112
} ,
116
113
{
117
114
test :/ \. s c s s $ / ,
118
- loaders : [ 'raw-loader' , 'postcss-loader' , 'sass-loader?sourceMap ' ]
115
+ loaders : [ 'raw-loader' , 'postcss-loader' , 'sass-loader' ]
119
116
} ,
117
+ //
120
118
// Asset loaders
121
119
//
122
120
{
123
121
test : / \. ( j p g | p n g ) $ / ,
124
122
loader : 'url-loader?limit=25000' , // Only inline for sizes <= 25000
125
- include : PATHS . images
126
123
} ,
127
124
{
128
125
test : / \. ( j p g | p n g ) $ / ,
129
126
loader : 'file-loader?name=[path][name].[hash].[ext]' ,
130
- include : PATHS . images
127
+ include : ngAppResolve ( './public' )
131
128
} ,
132
129
{
133
130
test : / \. s v g $ / ,
134
131
loader : 'file-loader' ,
135
- include : PATHS . images
132
+ include : ngAppResolve ( './public' )
136
133
}
137
134
{
138
135
test : / \. h t m l $ / ,
@@ -142,25 +139,20 @@ export const webpackCommonConfig = {
142
139
} ,
143
140
postcss : ( ) => {
144
141
return {
145
- defaults : [ cssnano , autoprefixer ]
142
+ defaults : [ autoprefixer ]
146
143
} ;
147
144
} ,
148
145
plugins : [
146
+ new ForkCheckerPlugin ( ) ,
149
147
new webpack . optimize . CommonsChunkPlugin ( {
150
148
name : [ 'polyfills' , 'vendor' ] . reverse ( )
151
149
} ) ,
152
- new HtmlWebpackPlugin ( baseHtmlTemplateConfig )
150
+ new HtmlWebpackPlugin ( baseHtmlTemplateConfig ) ,
151
+ new CopyWebpackPlugin ( [ { from : ngAppResolve ( './public' ) , to : ngAppResolve ( './dist/public' ) } ] )
153
152
] ,
154
153
resolve : {
155
154
extensions : [ '' , '.ts' , '.js' ] ,
156
155
root : ngAppResolve ( './src' )
157
156
// modulesDirectories: ['node_modules']
158
- } ,
159
- node : {
160
- global : 'window' ,
161
- crypto : 'empty' ,
162
- module : false ,
163
- clearImmediate : false ,
164
- setImmediate : false
165
157
}
166
158
} ;
0 commit comments