const NAMESPACE_DESKTOP = 'assets/desktop/';
const NODE_ENV = process.env.NODE_ENV || 'development';
const webpack = require('webpack');
const WebpackNotifierPlugin = require('webpack-notifier');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
context: __dirname + '/resources/assets',
entry: {
desktop: './desktop',
login: './login'
},
output: {
path: __dirname + '/public/assets',
filename: "[name].js",
library: '[name]'
},
devtool: 'cheap-inline-module-source-map',
module: {
loaders: [
{
test: /\.js$/,
exclude: /(node_modules)/,
loaders: ['ng-annotate', 'babel?presets[]=es2015']
},
{
test: /\.css$/,
loader: ExtractTextPlugin.extract('style', 'css!resolve-url')
},
{
test: /\.less$/,
loader: ExtractTextPlugin.extract('style', 'css!resolve-url!less')
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract('style', 'css!resolve-url!sass?sourceMap')
},
{
test: /\.(jpe?g|png|gif|otf|eot|svg|ttf|woff|html)/,
loader: 'file?name=[path][name].[ext]'
}
//{
// test: /\.woff($|\?)|\.woff2($|\?)|\.ttf($|\?)|\.eot($|\?)|\.svg($|\?)/,
// loader: 'url-loader'
//}
],
noParse: ['node_modules']
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery",
_: "underscore",
"window._": "underscore"
}),
new webpack.NoErrorsPlugin(),
new WebpackNotifierPlugin({title: 'Webpack'}),
new webpack.DefinePlugin({
NAMESPACE_DESKTOP: JSON.stringify(NAMESPACE_DESKTOP),
NODE_ENV: JSON.stringify(NODE_ENV)
}),
new webpack.HotModuleReplacementPlugin(),
new ExtractTextPlugin('[name].css', {allChunks: true})
],
resolve: {
extensions: ['', '.js', '.html', '.less', '.scss', '.css']
},
watch: NODE_ENV == 'development',
watchOptions: {
aggregateTimeout: 100
},
devServer: {
host: 'localhost',
port: '8080',
contentBase: __dirname + '/public',
hot: false,
inline: false,
publicPath: '/assets',
headers: {
'Access-Control-Allow-Origin': '*'
}
}
};
if (NODE_ENV != 'development') {
module.exports.plugins.push(
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
drop_console: false,
unsafe: true
}
})
);
}