This repository was archived by the owner on Feb 2, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.config.js
More file actions
74 lines (61 loc) · 1.46 KB
/
webpack.config.js
File metadata and controls
74 lines (61 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const argv = require('yargs').argv;
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const getConfig = require('./webpack.common.config');
const env = require('./env')[argv.env || 'development'];
if (argv.optimize) {
env.definitions['process.env.NODE_ENV'] = '"production"';
}
const config = getConfig(env);
config.entry = env.entry;
config.output = {
path: './dist',
filename: `${argv.optimize ? '[hash].' : ''}[name].js`,
};
const cssLoader = `css${argv.optimize ? '?minimize' : ''}`;
config.module.loaders = config.module.loaders.concat([
{
test: /\.html$/,
loader: 'html',
},
{
test: /\.scss/,
loader: `style!${cssLoader}!sass`,
},
{
test: /\.css/,
loader: `style!${cssLoader}`,
},
{
test: /\.(eot|svg|ttf|wav|woff|woff2)/,
loader: 'file',
},
]);
config.module.preLoaders = config.module.preLoaders.concat([
{
test: /\.html$/,
loader: 'htmlhint',
},
]);
config.plugins = config.plugins.concat([
new HtmlWebpackPlugin({
favicon: './src/app/favicon.ico',
template: './src/app/index.html',
}),
]);
if (argv.optimize) {
config.plugins = config.plugins.concat([
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurrenceOrderPlugin(),
]);
}
config.devServer = {
port: env.port,
inline: true,
historyApiFallback: true,
};
config.htmlhint = {
failOnError: argv.optimize,
failOnWarning: argv.optimize,
};
module.exports = config;