angular2-data-table
Version:
angular2-data-table is a Angular2 component for presenting large and complex data.
78 lines (75 loc) • 2.08 kB
JavaScript
const webpack = require('webpack');
const webpackMerge = require('webpack-merge');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const commonConfig = require('./webpack.common');
const { ENV, dir } = require('./helpers');
module.exports = function(env) {
return webpackMerge(commonConfig({ env: ENV }), {
devtool: 'source-map',
entry: {
'app': './demo/bootstrap.ts',
'polyfills': './demo/polyfills.ts'
},
module: {
exprContextCritical: false,
rules: [
{
enforce: 'pre',
test: /\.js$/,
loader: 'source-map-loader',
exclude: /(node_modules)/
},
{
test: /\.ts$/,
loaders: [
'awesome-typescript-loader'
],
exclude: [/\.(spec|e2e|d)\.ts$/]
},
{
test: /\.css/,
loader:
ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader:'css-loader?sourceMap'
})
},
{
test: /\.scss$/,
loader:
ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: 'css-loader?sourceMap!postcss-loader?sourceMap!sass-loader?sourceMap'
})
}
]
},
plugins: [
new ExtractTextPlugin({
filename: '[name].css',
allChunks: true
}),
new webpack.optimize.CommonsChunkPlugin({
name: ['polyfills'],
minChunks: Infinity
}),
new HtmlWebpackPlugin({
template: 'demo/index.ejs',
chunksSortMode: 'dependency',
title: 'angular2-data-table',
googleAnalytics: {
trackingId: 'UA-57474611-3',
pageViewOnLoad: true
}
}),
new CleanWebpackPlugin(['dist'], {
root: dir(),
verbose: false,
dry: false
}),
new webpack.optimize.UglifyJsPlugin()
]
});
};