65 lines
1.3 KiB
JavaScript
65 lines
1.3 KiB
JavaScript
|
// #docregion
|
||
|
var webpack = require('webpack');
|
||
|
var HtmlWebpackPlugin = require('html-webpack-plugin');
|
||
|
var ExtractTextPlugin = require('extract-text-webpack-plugin');
|
||
|
var helpers = require('./helpers');
|
||
|
|
||
|
module.exports = {
|
||
|
// #docregion entries
|
||
|
entry: {
|
||
|
'polyfills': './src/polyfills.ts',
|
||
|
'vendor': './src/vendor.ts',
|
||
|
'app': './src/main.ts'
|
||
|
},
|
||
|
// #enddocregion
|
||
|
|
||
|
// #docregion resolve
|
||
|
resolve: {
|
||
|
extensions: ['', '.js', '.ts']
|
||
|
},
|
||
|
// #enddocregion resolve
|
||
|
|
||
|
// #docregion loaders
|
||
|
module: {
|
||
|
loaders: [
|
||
|
{
|
||
|
test: /\.ts$/,
|
||
|
loader: 'ts'
|
||
|
},
|
||
|
{
|
||
|
test: /\.html$/,
|
||
|
loader: 'html'
|
||
|
},
|
||
|
{
|
||
|
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
|
||
|
loader: 'file?name=assets/[name].[hash].[ext]'
|
||
|
},
|
||
|
{
|
||
|
test: /\.css$/,
|
||
|
exclude: helpers.root('src', 'app'),
|
||
|
loader: ExtractTextPlugin.extract('style', 'css?sourceMap')
|
||
|
},
|
||
|
{
|
||
|
test: /\.css$/,
|
||
|
include: helpers.root('src', 'app'),
|
||
|
loader: 'raw'
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
// #enddocregion loaders
|
||
|
|
||
|
// #docregion plugins
|
||
|
plugins: [
|
||
|
new webpack.optimize.CommonsChunkPlugin({
|
||
|
name: ['app', 'vendor', 'polyfills']
|
||
|
}),
|
||
|
|
||
|
new HtmlWebpackPlugin({
|
||
|
template: 'src/index.html'
|
||
|
})
|
||
|
]
|
||
|
// #enddocregion plugins
|
||
|
};
|
||
|
// #enddocregion
|
||
|
|