From f9e7f482d307f89af8a4281a7bdb719297f07c21 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Tue, 11 Oct 2016 15:45:00 +0800 Subject: Setup webpack production config --- webpack.production.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 webpack.production.js (limited to 'webpack.production.js') diff --git a/webpack.production.js b/webpack.production.js new file mode 100644 index 00000000..f4125cec --- /dev/null +++ b/webpack.production.js @@ -0,0 +1,36 @@ +var baseConfig = require('./webpackBaseConfig'); +var webpack = require('webpack'); +var ExtractTextPlugin = require("extract-text-webpack-plugin"); + +module.exports = Object.assign({}, baseConfig, { + plugins: [ + new webpack.ProvidePlugin({ + '_': 'lodash', + Visibility: "visibilityjs", + Cookies: "js-cookie", + emojify: "emojify.js", + io: "socket.io-client", + key: "keymaster" + }), + new webpack.DefinePlugin({ + "require.specified": "require.resolve" + }), + new ExtractTextPlugin("[name].css"), + new webpack.optimize.CommonsChunkPlugin({ + name: "vendor", + filename: "vendor.bundle.js", + minChunks: Infinity, + }), + new webpack.DefinePlugin({ + 'process.env': { + 'NODE_ENV': JSON.stringify('production') + } + }), + new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false + }, + sourceMap: false + }) + ] +}); -- cgit v1.2.3 From 56c5378939c6498d0440b3ed76a604523678073f Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Tue, 11 Oct 2016 17:15:06 +0800 Subject: Optimize viz.js async rendering through webpack chunk --- webpack.production.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'webpack.production.js') diff --git a/webpack.production.js b/webpack.production.js index f4125cec..1c54ae38 100644 --- a/webpack.production.js +++ b/webpack.production.js @@ -17,10 +17,11 @@ module.exports = Object.assign({}, baseConfig, { }), new ExtractTextPlugin("[name].css"), new webpack.optimize.CommonsChunkPlugin({ - name: "vendor", - filename: "vendor.bundle.js", - minChunks: Infinity, - }), + name: ["vendor", "public", "slide", "locale"], + async: true, + filename: '[name].js', + minChunks: Infinity + }) new webpack.DefinePlugin({ 'process.env': { 'NODE_ENV': JSON.stringify('production') -- cgit v1.2.3 From ddb953da0ca4dbbc5763e284f5cc7f974589434f Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Tue, 11 Oct 2016 18:59:05 +0800 Subject: Fix webpack production config --- webpack.production.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'webpack.production.js') diff --git a/webpack.production.js b/webpack.production.js index 1c54ae38..c954bd43 100644 --- a/webpack.production.js +++ b/webpack.production.js @@ -21,7 +21,7 @@ module.exports = Object.assign({}, baseConfig, { async: true, filename: '[name].js', minChunks: Infinity - }) + }), new webpack.DefinePlugin({ 'process.env': { 'NODE_ENV': JSON.stringify('production') -- cgit v1.2.3 From 05d5a44d99ac08a4e3f9cd54702f0e6451a2f49c Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 12 Oct 2016 14:17:03 +0800 Subject: Cleanup webpack production config --- webpack.production.js | 3 --- 1 file changed, 3 deletions(-) (limited to 'webpack.production.js') diff --git a/webpack.production.js b/webpack.production.js index c954bd43..ce8dd27e 100644 --- a/webpack.production.js +++ b/webpack.production.js @@ -12,9 +12,6 @@ module.exports = Object.assign({}, baseConfig, { io: "socket.io-client", key: "keymaster" }), - new webpack.DefinePlugin({ - "require.specified": "require.resolve" - }), new ExtractTextPlugin("[name].css"), new webpack.optimize.CommonsChunkPlugin({ name: ["vendor", "public", "slide", "locale"], -- cgit v1.2.3 From 2cafe15e854b493d335652755b74674c7e2da4f6 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Wed, 12 Oct 2016 17:15:59 +0800 Subject: Enable production assets hash --- webpack.production.js | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) (limited to 'webpack.production.js') diff --git a/webpack.production.js b/webpack.production.js index ce8dd27e..173ca0cd 100644 --- a/webpack.production.js +++ b/webpack.production.js @@ -1,6 +1,8 @@ var baseConfig = require('./webpackBaseConfig'); var webpack = require('webpack'); var ExtractTextPlugin = require("extract-text-webpack-plugin"); +var path = require('path'); +var HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = Object.assign({}, baseConfig, { plugins: [ @@ -19,6 +21,54 @@ module.exports = Object.assign({}, baseConfig, { filename: '[name].js', minChunks: Infinity }), + new HtmlWebpackPlugin({ + template: 'public/views/includes/header.ejs', + chunks: ['vendor', 'index'], + filename: path.join(__dirname, 'public/views/build/index-header.ejs'), + inject: false + }), + new HtmlWebpackPlugin({ + template: 'public/views/includes/scripts.ejs', + chunks: ['vendor', 'index'], + filename: path.join(__dirname, 'public/views/build/index-scripts.ejs'), + inject: false + }), + new HtmlWebpackPlugin({ + template: 'public/views/includes/header.ejs', + chunks: ['vendor', 'locale'], + filename: path.join(__dirname, 'public/views/build/cover-header.ejs'), + inject: false + }), + new HtmlWebpackPlugin({ + template: 'public/views/includes/scripts.ejs', + chunks: ['vendor', 'locale'], + filename: path.join(__dirname, 'public/views/build/cover-scripts.ejs'), + inject: false + }), + new HtmlWebpackPlugin({ + template: 'public/views/includes/header.ejs', + chunks: ['vendor', 'public'], + filename: path.join(__dirname, 'public/views/build/pretty-header.ejs'), + inject: false + }), + new HtmlWebpackPlugin({ + template: 'public/views/includes/scripts.ejs', + chunks: ['vendor', 'public'], + filename: path.join(__dirname, 'public/views/build/pretty-scripts.ejs'), + inject: false + }), + new HtmlWebpackPlugin({ + template: 'public/views/includes/header.ejs', + chunks: ['vendor', 'slide'], + filename: path.join(__dirname, 'public/views/build/slide-header.ejs'), + inject: false + }), + new HtmlWebpackPlugin({ + template: 'public/views/includes/scripts.ejs', + chunks: ['vendor', 'slide'], + filename: path.join(__dirname, 'public/views/build/slide-scripts.ejs'), + inject: false + }), new webpack.DefinePlugin({ 'process.env': { 'NODE_ENV': JSON.stringify('production') @@ -30,5 +80,11 @@ module.exports = Object.assign({}, baseConfig, { }, sourceMap: false }) - ] + ], + + output: { + path: path.join(__dirname, 'public/build'), + publicPath: '/build/', + filename: '[id].[name].[hash].js' + }, }); -- cgit v1.2.3 From 43c9f68b9a67fa7f5b3e5a7f0dc6d5f8c9114d20 Mon Sep 17 00:00:00 2001 From: Yukai Huang Date: Thu, 13 Oct 2016 08:56:56 +0800 Subject: Refactor webpack module --- webpack.production.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'webpack.production.js') diff --git a/webpack.production.js b/webpack.production.js index 173ca0cd..1c2190ab 100644 --- a/webpack.production.js +++ b/webpack.production.js @@ -11,12 +11,12 @@ module.exports = Object.assign({}, baseConfig, { Visibility: "visibilityjs", Cookies: "js-cookie", emojify: "emojify.js", - io: "socket.io-client", key: "keymaster" }), new ExtractTextPlugin("[name].css"), new webpack.optimize.CommonsChunkPlugin({ - name: ["vendor", "public", "slide", "locale"], + names: ["vendor", "public", "slide", "locale"], + children: true, async: true, filename: '[name].js', minChunks: Infinity @@ -78,6 +78,7 @@ module.exports = Object.assign({}, baseConfig, { compress: { warnings: false }, + mangle: false, sourceMap: false }) ], -- cgit v1.2.3