summaryrefslogtreecommitdiff
path: root/web-ui/webpack.production.config.js
diff options
context:
space:
mode:
authorAnike Arni <aarni@thoughtworks.com>2017-02-16 18:51:26 -0200
committerAnike Arni <aarni@thoughtworks.com>2017-02-16 18:51:26 -0200
commit957599ae01687d6b3d02a3c34fdbe2ac6bd920f9 (patch)
tree7612fa7cfd33bd9657bce0eb9e8db47b076cedcc /web-ui/webpack.production.config.js
parent64780114ae90bb890d3ffa0a9aebe4686c6b74d3 (diff)
[#907] Bundles login static files separately
Due to conflicts with public and protected urls, login and interstitial files have to be on a different public url from inbox and resources that require login. Therefore, here, we delegate that logic to webpack. Now we have a '/public' url and a '/assets' url for those static assets.
Diffstat (limited to 'web-ui/webpack.production.config.js')
-rw-r--r--web-ui/webpack.production.config.js68
1 files changed, 44 insertions, 24 deletions
diff --git a/web-ui/webpack.production.config.js b/web-ui/webpack.production.config.js
index 5ccdc782..92a4f12b 100644
--- a/web-ui/webpack.production.config.js
+++ b/web-ui/webpack.production.config.js
@@ -1,22 +1,13 @@
var path = require('path');
var webpack = require('webpack');
-var copyWebpack = require('./config/copy-webpack');
+var publicAssetsWebpack = require('./config/public-assets-webpack');
+var protectedAssetsWebpack = require('./config/protected-assets-webpack');
var loaders = require('./config/loaders-webpack');
var aliases = require('./config/alias-webpack');
-module.exports = {
- entry: {
- app: './app/js/index.js',
- backup_account: './src/backup_account/backup_account.js',
- login: './src/login/login.js',
- sandbox: './app/js/sandbox.js'
- },
+var commonConfiguration = {
node: { fs: 'empty' },
- output: {
- path: path.join(__dirname, 'dist'),
- filename: '[name].js',
- publicPath: '/assets/'
- },
+ devtool: 'source-map',
resolve: {
alias: aliases,
extensions: ['', '.js']
@@ -24,14 +15,43 @@ module.exports = {
module: {
loaders: loaders
},
- plugins: [
- new webpack.optimize.UglifyJsPlugin(),
- new webpack.optimize.DedupePlugin(),
- new webpack.DefinePlugin({
- 'process.env': {
- NODE_ENV: JSON.stringify('production')
- }
- }),
- copyWebpack
- ]
-}
+ postcss: {}
+};
+
+var commonPlugins = [
+ new webpack.optimize.UglifyJsPlugin(),
+ new webpack.optimize.DedupePlugin(),
+ new webpack.DefinePlugin({
+ 'process.env': {
+ NODE_ENV: JSON.stringify('production')
+ }
+ })
+];
+
+var publicAssets = Object.assign({}, commonConfiguration, {
+ entry: {
+ 'login': './src/login/login.js',
+ },
+ output: {
+ path: path.join(__dirname, 'dist/public'),
+ filename: '[name].js',
+ publicPath: '/assets/'
+ },
+ plugins: commonPlugins.concat([ publicAssetsWebpack ])
+});
+
+var protectedAssets = Object.assign({}, commonConfiguration, {
+ entry: {
+ 'app': './app/js/index.js',
+ 'backup_account': './src/backup_account/backup_account.js',
+ 'sandbox': './app/js/sandbox.js'
+ },
+ output: {
+ path: path.join(__dirname, 'dist/protected'),
+ filename: '[name].js',
+ publicPath: '/assets/'
+ },
+ plugins: commonPlugins.concat([ protectedAssetsWebpack ])
+});
+
+module.exports = [publicAssets, protectedAssets];