Skip to content

Commit 7ac805e

Browse files
committed
fix(build): API updates & bundle processing optimizations
1 parent b70474c commit 7ac805e

3 files changed

Lines changed: 42 additions & 29 deletions

File tree

webpack.base.conf.js

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const path = require('path');
22
const webpack = require('webpack');
33
const ROOT_PATH = path.resolve(__dirname, './');
4+
45
const isExternal = (module) => {
56
let userRequest = module.userRequest;
67

@@ -31,36 +32,30 @@ module.exports = {
3132
},
3233

3334
module: {
34-
loaders: [
35+
rules: [
3536
{
3637
test: /\.html$/,
37-
loaders: [`ngtemplate-loader?relativeTo=${ROOT_PATH}/src`, 'html-loader'],
38+
use: [`ngtemplate-loader?relativeTo=${ROOT_PATH}/src`, 'html-loader'],
3839
exclude: `${ROOT_PATH}/src/index.html`
3940
},
4041

4142
{
4243
test: /\.js$/,
43-
loaders: ['babel-loader', 'eslint-loader'],
44+
use: ['babel-loader', 'eslint-loader'],
4445
exclude: /node_modules/
4546
},
4647

4748
{
4849
test: /\.(png|jpg|gif|svg)$/,
49-
loaders: ['url-loader?limit=8192&name=[path][name].[ext]?[hash]']
50+
use: ['url-loader?limit=8192&name=[path][name].[ext]?[hash]']
5051
}
5152
]
5253
},
5354

5455
plugins: [
5556
new webpack.optimize.CommonsChunkPlugin({
5657
name: 'vendor',
57-
minChunks: function (module) {
58-
return isExternal(module);
59-
}
60-
}),
61-
62-
}),
63-
64-
new (webpack.optimize.OccurenceOrderPlugin || webpack.optimize.OccurrenceOrderPlugin)()
58+
minChunks: (module) => isExternal(module)
59+
})
6560
]
6661
};

webpack.dev.config.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,36 @@
11
const baseConfig = require('./webpack.base.conf');
2+
const path = require('path');
23
const webpack = require('webpack');
34
const merge = require('webpack-merge');
4-
const validate = require('webpack-validator');
55
const HtmlWebpackPlugin = require('html-webpack-plugin');
6+
const ExtractTextPlugin = require('extract-text-webpack-plugin');
67

7-
module.exports = validate(merge(baseConfig, {
8+
module.exports = merge(baseConfig, {
89

9-
devtool: '#source-map',
10+
devtool: '#cheap-module-source-map',
1011

1112
// devServer: {
1213
// historyApiFallback: true,
1314
// noInfo: true
1415
// },
1516

17+
output: {
18+
chunkFilename: 'js/[name].js'
19+
},
20+
1621
module: {
17-
loaders: [
18-
{ test: /\.css$/, loaders: ['style-loader', 'css-loader?sourceMap', 'postcss-loader?sourceMap'] },
19-
{ test: /\.(sass|scss)$/, loaders: ['style-loader', 'css-loader?sourceMap', 'postcss-loader?sourceMap', 'sass-loader?sourceMap'] }
22+
rules: [
23+
{ test: /\.css$/, use: ['style-loader', 'css-loader?sourceMap', 'postcss-loader?sourceMap'] },
24+
{ test: /\.(sass|scss)$/, use: ['style-loader', 'css-loader?sourceMap', 'postcss-loader?sourceMap', 'sass-loader?sourceMap'] }
2025
]
2126
},
2227

2328
plugins: [
29+
new webpack.NamedModulesPlugin(),
2430
new HtmlWebpackPlugin({
2531
template: './index.html',
2632
cache: true
2733
})
2834
]
2935

30-
}));
36+
});

webpack.prod.config.js

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,43 @@
1-
const webpack = require('webpack');
21
const baseConfig = require('./webpack.base.conf');
2+
const path = require('path');
3+
const webpack = require('webpack');
34
const merge = require('webpack-merge');
4-
const validate = require('webpack-validator');
55
const CleanWebpackPlugin = require('clean-webpack-plugin');
66
const ExtractTextPlugin = require('extract-text-webpack-plugin');
77
const HtmlWebpackPlugin = require('html-webpack-plugin');
88

9-
module.exports = validate(merge(baseConfig, {
9+
module.exports = merge(baseConfig, {
1010

11-
devtool: '#eval',
11+
devtool: '#source-map',
1212

1313
output: {
1414
filename: 'js/[name].[hash].js',
1515
chunkFilename: 'js/[name].[hash].js'
1616
},
1717

1818
module: {
19-
loaders: [
20-
{ test: /\.css$/, loader: ExtractTextPlugin.extract(['css-loader', 'postcss-loader']) },
21-
{ test: /\.(sass|scss)$/, loader: ExtractTextPlugin.extract(['css-loader', 'postcss-loader', 'sass-loader']) }
19+
rules: [
20+
{ test: /\.css$/,
21+
use: ExtractTextPlugin.extract({
22+
fallback: 'style-loader',
23+
use: ['css-loader', 'postcss-loader']
24+
})
25+
},
26+
{ test: /\.(sass|scss)$/,
27+
use: ExtractTextPlugin.extract({
28+
fallback: 'style-loader',
29+
use: ['css-loader', 'postcss-loader', 'sass-loader']
30+
})
31+
}
2232
]
2333
},
2434

2535
plugins: [
2636
new CleanWebpackPlugin(['dist']),
27-
new ExtractTextPlugin('styles/[name].[hash].css'),
28-
new (webpack.optimize.OccurenceOrderPlugin || webpack.optimize.OccurrenceOrderPlugin)(),
37+
new ExtractTextPlugin({
38+
filename: 'styles/[name].[hash].css',
39+
allChunks: true
40+
}),
2941

3042
new HtmlWebpackPlugin({
3143
template: './index.html',
@@ -40,4 +52,4 @@ module.exports = validate(merge(baseConfig, {
4052
})
4153
]
4254

43-
}));
55+
});

0 commit comments

Comments
 (0)