diff options
author | Anike Arni <aarni@thoughtworks.com> | 2017-02-16 18:51:26 -0200 |
---|---|---|
committer | Anike Arni <aarni@thoughtworks.com> | 2017-02-16 18:51:26 -0200 |
commit | 957599ae01687d6b3d02a3c34fdbe2ac6bd920f9 (patch) | |
tree | 7612fa7cfd33bd9657bce0eb9e8db47b076cedcc /web-ui | |
parent | 64780114ae90bb890d3ffa0a9aebe4686c6b74d3 (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')
-rw-r--r-- | web-ui/app/index.html | 34 | ||||
-rw-r--r-- | web-ui/app/js/page/default.js | 2 | ||||
-rw-r--r-- | web-ui/app/sandbox.html | 2 | ||||
-rw-r--r-- | web-ui/app/scss/base/_fonts.scss | 23 | ||||
-rw-r--r-- | web-ui/config/copy-webpack.js | 91 | ||||
-rw-r--r-- | web-ui/config/protected-assets-webpack.js | 25 | ||||
-rw-r--r-- | web-ui/config/public-assets-webpack.js | 10 | ||||
-rw-r--r-- | web-ui/src/backup_account/backup_account.html | 2 | ||||
-rw-r--r-- | web-ui/src/backup_account/page.js | 2 | ||||
-rw-r--r-- | web-ui/src/common/footer/footer.js | 2 | ||||
-rw-r--r-- | web-ui/src/common/header/header.js | 2 | ||||
-rw-r--r-- | web-ui/src/i18n.js | 2 | ||||
-rw-r--r-- | web-ui/src/interstitial/interstitial.html | 6 | ||||
-rw-r--r-- | web-ui/src/login/login.css | 2 | ||||
-rw-r--r-- | web-ui/src/login/login.html | 12 | ||||
-rw-r--r-- | web-ui/webpack.config.js | 63 | ||||
-rw-r--r-- | web-ui/webpack.production.config.js | 68 | ||||
-rw-r--r-- | web-ui/webpack.test.config.js | 1 |
18 files changed, 168 insertions, 181 deletions
diff --git a/web-ui/app/index.html b/web-ui/app/index.html index b40aecdf..72b04c83 100644 --- a/web-ui/app/index.html +++ b/web-ui/app/index.html @@ -1,15 +1,15 @@ <!DOCTYPE html> <html> <head> -<link rel="icon" type="image/png" href="assets/images/Favicon.png"> +<link rel="icon" type="image/png" href="public/images/Favicon.png"> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>$account_email - Pixelated Mail</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width"> -<link href="assets/bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> -<link href="assets/bower_components/jquery-file-upload/css/jquery.fileupload.css" rel="stylesheet" type="text/css"> -<link rel="stylesheet" href="assets/css/style.css"> +<link href="/assets/css/font-awesome.min.css" rel="stylesheet" type="text/css"> +<link href="/assets/css/jquery.fileupload.css" rel="stylesheet" type="text/css"> +<link rel="stylesheet" href="/assets/css/style.css"> </head> <body> @@ -92,19 +92,19 @@ </div> </div> -<script src="assets/bower_components/modernizr/modernizr.js"></script> -<script src="assets/bower_components/lodash/dist/lodash.min.js"></script> -<script src="assets/bower_components/jquery/dist/jquery.min.js"></script> -<script src="assets/bower_components/jquery-ui/jquery-ui.min.js"></script> -<script src="assets/bower_components/jquery-file-upload/js/jquery.fileupload.js"></script> -<script src="assets/bower_components/handlebars/handlebars.min.js"></script> -<script src="assets/bower_components/typeahead.js/dist/typeahead.bundle.min.js"></script> -<script src="assets/bower_components/iframe-resizer/js/iframeResizer.min.js"></script> -<script src="assets/bower_components/foundation/js/foundation.js" ></script> -<script src="assets/bower_components/foundation/js/foundation/foundation.reveal.js" ></script> -<script src="assets/bower_components/foundation/js/foundation/foundation.offcanvas.js"></script> -<script src="assets/js/foundation/initialize_foundation.js"></script> -<script src="assets/app.js"></script> +<script src="/assets/modernizr.js"></script> +<script src="/assets/lodash.min.js"></script> +<script src="/assets/jquery.min.js"></script> +<script src="/assets/jquery-ui.min.js"></script> +<script src="/assets/jquery.fileupload.js"></script> +<script src="/assets/handlebars.min.js"></script> +<script src="/assets/typeahead.bundle.min.js"></script> +<script src="/assets/iframeResizer.min.js"></script> +<script src="/assets/foundation.js" ></script> +<script src="/assets/foundation.reveal.js" ></script> +<script src="/assets/foundation.offcanvas.js"></script> +<script src="/assets/initialize_foundation.js"></script> +<script src="/assets/app.js"></script> </body> </html> diff --git a/web-ui/app/js/page/default.js b/web-ui/app/js/page/default.js index ecaedfd8..541bb4b7 100644 --- a/web-ui/app/js/page/default.js +++ b/web-ui/app/js/page/default.js @@ -96,7 +96,7 @@ define( 'use strict'; function initialize(path) { - viewI18n.init(path + '/assets/'); + viewI18n.init(path + '/public/'); viewI18n.loaded(function() { paneContractExpand.attachTo(document); diff --git a/web-ui/app/sandbox.html b/web-ui/app/sandbox.html index 3e110977..52da1f5b 100644 --- a/web-ui/app/sandbox.html +++ b/web-ui/app/sandbox.html @@ -6,7 +6,7 @@ <link href="css/sandbox.css" rel="stylesheet" type="text/css"> <script src="sandbox.js"></script> - <script src="bower_components/iframe-resizer/js/iframeResizer.contentWindow.min.js"></script> + <script src="/assets/iframeResizer.contentWindow.min.js"></script> </head> <body></body> diff --git a/web-ui/app/scss/base/_fonts.scss b/web-ui/app/scss/base/_fonts.scss index dfc56dd8..9a47b5ed 100644 --- a/web-ui/app/scss/base/_fonts.scss +++ b/web-ui/app/scss/base/_fonts.scss @@ -2,67 +2,66 @@ font-family: 'Open Sans'; font-style: normal; font-weight: 300; - src: local('Open Sans Light'), local('OpenSans-Light'), url('/assets/fonts/OpenSans-Light.woff') format('woff'); + src: local('Open Sans Light'), local('OpenSans-Light'), url('/public/fonts/OpenSans-Light.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; - src: local('Open Sans'), local('OpenSans'), url('/assets/fonts/OpenSans.woff') format('woff'); + src: local('Open Sans'), local('OpenSans'), url('/public/fonts/OpenSans.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 600; - src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url('/assets/fonts/OpenSans-Semibold.woff') format('woff'); + src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url('/public/fonts/OpenSans-Semibold.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 700; - src: local('Open Sans Bold'), local('OpenSans-Bold'), url('/assets/fonts/OpenSans-Bold.woff') format('woff'); + src: local('Open Sans Bold'), local('OpenSans-Bold'), url('/public/fonts/OpenSans-Bold.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 800; - src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url('/assets/fonts/OpenSans-Extrabold.woff') format('woff'); + src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url('/public/fonts/OpenSans-Extrabold.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 300; - src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url('/assets/fonts/OpenSansLight-Italic.woff') format('woff'); + src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'), url('/public/fonts/OpenSansLight-Italic.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 400; - src: local('Open Sans Italic'), local('OpenSans-Italic'), url('/assets/fonts/OpenSans-Italic.woff') format('woff'); + src: local('Open Sans Italic'), local('OpenSans-Italic'), url('/public/fonts/OpenSans-Italic.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 600; - src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url('/assets/fonts/OpenSans-SemiboldItalic.woff') format('woff'); + src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url('/public/fonts/OpenSans-SemiboldItalic.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 700; - src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url('/assets/fonts/OpenSans-BoldItalic.woff') format('woff'); + src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'), url('/public/fonts/OpenSans-BoldItalic.woff') format('woff'); } @font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 800; - src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url('/assets/fonts/OpenSans-ExtraboldItalic.woff') format('woff'); + src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'), url('/public/fonts/OpenSans-ExtraboldItalic.woff') format('woff'); } @font-face { font-family: 'icomoon'; font-style: normal; font-weight: 400; - src: url('/assets/fonts/icomoon.woff') format('woff'), url('/assets/fonts/icomoon.ttf') format('truetype'), ; + src: url('/public/fonts/icomoon.woff') format('woff'), url('/public/fonts/icomoon.ttf') format('truetype'), ; } - diff --git a/web-ui/config/copy-webpack.js b/web-ui/config/copy-webpack.js deleted file mode 100644 index 7e56d760..00000000 --- a/web-ui/config/copy-webpack.js +++ /dev/null @@ -1,91 +0,0 @@ -var CopyWebpackPlugin = require('copy-webpack-plugin'); - -module.exports = new CopyWebpackPlugin([ - { context: 'app/', from: '404.html' }, - { context: 'app/', from: 'index.html' }, - { context: 'app/', from: 'sandbox.html' }, - { context: 'src/backup_account/', from: 'backup_account.html' }, - { context: 'src/login/', from: '*.html' }, - { context: 'src/login/', from: '*.css' }, - { context: 'src/interstitial/', from: '*' }, - { context: 'app/', from: 'css/*' }, - { context: 'app/', from: 'fonts/*' }, - { context: 'app/', from: 'locales/**/*' }, - { context: 'app/', from: 'images/**/*' }, - { context: 'app/', from: 'bower_components/font-awesome/fonts/*' }, - { - context: 'app/', - from: 'bower_components/font-awesome/css/font-awesome.min.css', - to: 'bower_components/font-awesome/css' - }, - { - context: 'app/', - from: 'bower_components/jquery-file-upload/css/jquery.fileupload.css', - to: 'bower_components/jquery-file-upload/css' - }, - { - context: 'app/', - from: 'bower_components/modernizr/modernizr.js', - to: 'bower_components/modernizr' - }, - { - context: 'app/', - from: 'bower_components/lodash/dist/lodash.min.js', - to: 'bower_components/lodash/dist' - }, - { - context: 'app/', - from: 'bower_components/jquery/dist/jquery.min.js', - to: 'bower_components/jquery/dist' - }, - { - context: 'app/', - from: 'bower_components/jquery-ui/jquery-ui.min.js', - to: 'bower_components/jquery-ui' - }, - { - context: 'app/', - from: 'bower_components/jquery-file-upload/js/jquery.fileupload.js', - to: 'bower_components/jquery-file-upload/js' - }, - { - context: 'app/', - from: 'bower_components/handlebars/handlebars.min.js', - to: 'bower_components/handlebars' - }, - { - context: 'app/', - from: 'bower_components/typeahead.js/dist/typeahead.bundle.min.js', - to: 'bower_components/typeahead.js/dist' - }, - { - context: 'app/', - from: 'bower_components/iframe-resizer/js/iframeResizer.min.js', - to: 'bower_components/iframe-resizer/js' - }, - { - context: 'app/', - from: 'bower_components/iframe-resizer/js/iframeResizer.contentWindow.min.js', - to: 'bower_components/iframe-resizer/js' - }, - { - context: 'app/', - from: 'bower_components/foundation/js/foundation.js', - to: 'bower_components/foundation/js' - }, - { - context: 'app/', - from: 'bower_components/foundation/js/foundation/foundation.reveal.js', - to: 'bower_components/foundation/js/foundation' - }, - { - context: 'app/', - from: 'bower_components/foundation/js/foundation/foundation.offcanvas.js', - to: 'bower_components/foundation/js/foundation' - }, - { - context: 'app/', - from: 'js/foundation/initialize_foundation.js', - to: 'js/foundation' - } -]) diff --git a/web-ui/config/protected-assets-webpack.js b/web-ui/config/protected-assets-webpack.js new file mode 100644 index 00000000..85654cf0 --- /dev/null +++ b/web-ui/config/protected-assets-webpack.js @@ -0,0 +1,25 @@ +var CopyWebpackPlugin = require('copy-webpack-plugin'); + +module.exports = new CopyWebpackPlugin([ + { context: 'app/', from: '404.html' }, + { context: 'app/', from: 'index.html' }, + { context: 'app/', from: 'sandbox.html' }, + { context: 'app/', from: 'css/*' }, + { context: 'src/backup_account/', from: 'backup_account.html' }, + { context: 'app/bower_components/font-awesome/', from: 'fonts/*' }, + { context: 'app/bower_components/font-awesome/', from: 'css/font-awesome.min.css', to: 'css' }, + { context: 'app/bower_components/jquery-file-upload/', from: 'css/jquery.fileupload.css', to: 'css' }, + { context: 'app/bower_components/modernizr/', from: 'modernizr.js' }, + { context: 'app/bower_components/lodash/dist/', from: 'lodash.min.js' }, + { context: 'app/bower_components/jquery/dist/', from: 'jquery.min.js' }, + { context: 'app/bower_components/jquery-ui/', from: 'jquery-ui.min.js' }, + { context: 'app/bower_components/jquery-file-upload/js/', from: 'jquery.fileupload.js' }, + { context: 'app/bower_components/handlebars/', from: 'handlebars.min.js' }, + { context: 'app/bower_components/typeahead.js/dist/', from: 'typeahead.bundle.min.js' }, + { context: 'app/bower_components/iframe-resizer/js/', from: 'iframeResizer.min.js' }, + { context: 'app/bower_components/iframe-resizer/js/', from: 'iframeResizer.contentWindow.min.js' }, + { context: 'app/bower_components/foundation/js/', from: 'foundation.js' }, + { context: 'app/bower_components/foundation/js/foundation/', from: 'foundation.reveal.js' }, + { context: 'app/bower_components/foundation/js/foundation/', from: 'foundation.offcanvas.js' }, + { context: 'app/js/foundation/', from: 'initialize_foundation.js' } +]) diff --git a/web-ui/config/public-assets-webpack.js b/web-ui/config/public-assets-webpack.js new file mode 100644 index 00000000..28dff566 --- /dev/null +++ b/web-ui/config/public-assets-webpack.js @@ -0,0 +1,10 @@ +var CopyWebpackPlugin = require('copy-webpack-plugin'); + +module.exports = new CopyWebpackPlugin([ + { context: 'src/login/', from: '*.html' }, + { context: 'src/login/', from: '*.css' }, + { context: 'src/interstitial/', from: '*' }, + { context: 'app/', from: 'fonts/*' }, + { context: 'app/', from: 'locales/**/*' }, + { context: 'app/', from: 'images/**/*' } +]); diff --git a/web-ui/src/backup_account/backup_account.html b/web-ui/src/backup_account/backup_account.html index fa026e7a..55881444 100644 --- a/web-ui/src/backup_account/backup_account.html +++ b/web-ui/src/backup_account/backup_account.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html> <head> - <link rel="icon" type="image/png" href="assets/images/Favicon.png" /> + <link rel="icon" type="image/png" href="public/images/Favicon.png" /> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0"/> diff --git a/web-ui/src/backup_account/page.js b/web-ui/src/backup_account/page.js index c39394e2..cc93a560 100644 --- a/web-ui/src/backup_account/page.js +++ b/web-ui/src/backup_account/page.js @@ -34,7 +34,7 @@ export const Page = ({ t }) => ( <div className='container'> <img className='backup-account-image' - src='assets/images/forgot-my-password.svg' + src='/public/images/forgot-my-password.svg' alt={t('backup-account.image-description')} /> <form> diff --git a/web-ui/src/common/footer/footer.js b/web-ui/src/common/footer/footer.js index 254a19f7..c2138c21 100644 --- a/web-ui/src/common/footer/footer.js +++ b/web-ui/src/common/footer/footer.js @@ -22,7 +22,7 @@ import './footer.scss'; export const Footer = ({ t }) => ( <footer className='footer-wrapper'> <div className='footer-content'> - <img className='footer-image' src='/assets/images/lab.svg' alt='' /> + <img className='footer-image' src='/public/images/lab.svg' alt='' /> <div> {t('footer-text')} <a className='footer-link' href='mailto:team@pixelated-project.org'> diff --git a/web-ui/src/common/header/header.js b/web-ui/src/common/header/header.js index 9e5f6bc7..50c863b5 100644 --- a/web-ui/src/common/header/header.js +++ b/web-ui/src/common/header/header.js @@ -25,7 +25,7 @@ export const Header = ({ t }) => ( <a href='/'> <img className='header-logo' - src='/startup-assets/pixelated-logo-orange.svg' + src='/public/images/logo-orange.svg' alt='Pixelated' /> </a> diff --git a/web-ui/src/i18n.js b/web-ui/src/i18n.js index bbbe2dcd..64c7b8a1 100644 --- a/web-ui/src/i18n.js +++ b/web-ui/src/i18n.js @@ -32,7 +32,7 @@ i18n .init({ fallbackLng: 'en_US', backend: { - loadPath: 'assets/locales/{{lng}}/{{ns}}.json' + loadPath: 'public/locales/{{lng}}/{{ns}}.json' } }); diff --git a/web-ui/src/interstitial/interstitial.html b/web-ui/src/interstitial/interstitial.html index ac9ab291..727883fe 100644 --- a/web-ui/src/interstitial/interstitial.html +++ b/web-ui/src/interstitial/interstitial.html @@ -4,15 +4,15 @@ <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <script src="/assets/snap.svg-min.js"></script> - <script src="/assets/jquery-2.1.3.min.js"></script> + <script src="/public/snap.svg-min.js"></script> + <script src="/public/jquery-2.1.3.min.js"></script> </head> <body style="border: 0px; padding: 0px; margin: 0px;background-color: #808181"> <section id="hive-section" style="background-color: #808181;" name="hive-section"> <svg id="hive" style="width: 100%; height: 100%;"></svg> </section> - <script src="/assets/interstitial.js"></script> + <script src="/public/interstitial.js"></script> </body> </html> diff --git a/web-ui/src/login/login.css b/web-ui/src/login/login.css index f1b54071..51ab2046 100644 --- a/web-ui/src/login/login.css +++ b/web-ui/src/login/login.css @@ -21,7 +21,7 @@ body { height: 100vh; color: #3E3A37; - background-image: url("/assets/images/hive-bg.png"); + background-image: url("/public/images/hive-bg.png"); background-repeat: repeat; } diff --git a/web-ui/src/login/login.html b/web-ui/src/login/login.html index 88d74556..b8c45180 100644 --- a/web-ui/src/login/login.html +++ b/web-ui/src/login/login.html @@ -1,19 +1,19 @@ <!DOCTYPE html> <html xmlns:t="http://twistedmatrix.com/ns/twisted.web.template/0.1"> <head> - <link rel="icon" type="image/png" href="/assets/images/Favicon.png" /> + <link rel="icon" type="image/png" href="/public/images/Favicon.png" /> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0"/> <title>Pixelated - Login</title> - <link rel="stylesheet" type="text/css" href="/assets/normalize.min.css" /> - <link rel="stylesheet" type="text/css" href="/assets/login.css" /> - <link rel="stylesheet" type="text/css" href="/assets/opensans.css" /> + <link rel="stylesheet" type="text/css" href="/public/normalize.min.css" /> + <link rel="stylesheet" type="text/css" href="/public/login.css" /> + <link rel="stylesheet" type="text/css" href="/public/opensans.css" /> </head> <body> <div class="content"> <div class="login"> - <img class="logo" src="/assets/images/logo-orange.svg" alt="Pixelated logo"/> + <img class="logo" src="/public/images/logo-orange.svg" alt="Pixelated logo"/> <p t:render="error_msg" class="error"></p> <div id="root"/> </div> @@ -21,6 +21,6 @@ <div t:render="disclaimer"></div> </div> </div> - <script type="text/javascript" src="/assets/login.js"></script> + <script type="text/javascript" src="/public/login.js"></script> </body> </html> diff --git a/web-ui/webpack.config.js b/web-ui/webpack.config.js index 946189bb..6a44e4a1 100644 --- a/web-ui/webpack.config.js +++ b/web-ui/webpack.config.js @@ -1,22 +1,12 @@ 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, @@ -25,10 +15,45 @@ module.exports = { module: { loaders: loaders }, - plugins: [copyWebpack, new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: JSON.stringify('development') - } - })], postcss: {} -} +}; + +var publicAssets = Object.assign({}, commonConfiguration, { + entry: { + 'login': './src/login/login.js', + }, + output: { + path: path.join(__dirname, 'dist/public'), + filename: '[name].js', + publicPath: '/assets/' + }, + plugins: [ + publicAssetsWebpack, + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify('development') + } + })] +}); + +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: [ + protectedAssetsWebpack, + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify('development') + } + })] +}); + +module.exports = [publicAssets, protectedAssets]; 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]; diff --git a/web-ui/webpack.test.config.js b/web-ui/webpack.test.config.js index 395c3949..e24e4540 100644 --- a/web-ui/webpack.test.config.js +++ b/web-ui/webpack.test.config.js @@ -1,6 +1,5 @@ var path = require('path'); var webpack = require('webpack'); -var copyWebpack = require('./config/copy-webpack'); var aliases = require('./config/alias-webpack'); module.exports = { |