blob: 8bef911b1c50024d595bde0637adb266e591d992 [file] [log] [blame]
const webpack = require('webpack');
const conf = require('./gulp.conf');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const autoprefixer = require('autoprefixer');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const env = process.env.NODE_ENV || 'production';
const brand = process.env.BRAND || 'cord';
module.exports = {
module: {
preLoaders: [
{
test: /\.ts$/,
exclude: /node_modules/,
loader: 'tslint'
}
],
loaders: [
{
test: /.json$/,
loaders: [
'json'
]
},
{
test: /\.(css|scss)$/,
loaders: [
'style',
'css',
'resolve-url-loader',
'sass?sourceMap',
'postcss'
]
},
{
test: /\.ts$/,
exclude: /node_modules/,
loaders: [
'ng-annotate',
'ts'
]
},
{
test: /.html$/,
loaders: [
'html?' + JSON.stringify({
attrs: ["img:src", "img:ng-src"]
})
]
},
{
test: /\.(png|woff|woff2|eot|ttf|svg|jpg|gif|jpeg)$/,
loader: 'url-loader?limit=100000'
}
]
},
plugins: [
new CopyWebpackPlugin([
{ from: `./conf/app/app.config.${env}.js`, to: `app.config.js` },
{ from: `./conf/app/style.config.${brand}.js`, to: `style.config.js` },
]),
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.NoErrorsPlugin(),
new HtmlWebpackPlugin({
template: conf.path.src('index.html')
})
],
postcss: () => [autoprefixer],
debug: true,
devtool: 'source-map',
output: {
path: path.join(process.cwd(), conf.paths.tmp),
filename: 'index.js'
},
resolve: {
extensions: [
'',
'.webpack.js',
'.web.js',
'.js',
'.ts'
]
},
entry: `./${conf.path.src('index')}`,
ts: {
configFileName: 'tsconfig.json'
},
tslint: {
configuration: require('../tslint.json')
},
stats: {
colors: true,
modules: true,
reasons: true,
errorDetails: true
}
};