[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-ui / webpack.config.js
index 2cccba8..c723a7a 100644 (file)
@@ -1,66 +1,33 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
 'use strict';
 
-var path = require('path');
-var webpack = require('webpack');
+const path = require('path');
+const webpack = require('webpack');
+const proxyServer = require('./proxy-server');
 
-var localDevConfig = {};
+let localDevConfig = {};
 try {
        localDevConfig = require('./devConfig');
-} catch(e) {}
-var devConfig = Object.assign({}, require('./devConfig.defaults'), localDevConfig);
-var devPort = process.env.PORT || devConfig.port;
-var latestProgress = 0;
+} catch (e) {}
+let devConfig = Object.assign({}, require('./devConfig.defaults'), localDevConfig);
+let devPort = process.env.PORT || devConfig.port;
 
-module.exports = {
-       devtool: 'eval-source-map',
-       entry: {
-               bundle: [
-                       'sdc-app/sdc.app.jsx',
-                       `webpack-dev-server/client?http://localhost:${devPort}`,
-                       'webpack/hot/only-dev-server'
-               ],
-               'punch-outs': [
-                       'sdc-app/punch-outs.js',
-                       `webpack-dev-server/client?http://localhost:${devPort}`,
-                       'webpack/hot/only-dev-server'
-               ],
-               'heat-validation': [
-                       'sdc-app/heatValidation.app.jsx',
-                       `webpack-dev-server/client?http://localhost:${devPort}`,
-                       'webpack/hot/only-dev-server'
-               ]
-       },
-       resolve: {
-               root: [path.resolve('.')],
-               alias: {
-                       i18nJson: 'nfvo-utils/i18n/locale.json',
-                       'nfvo-utils': 'src/nfvo-utils',
-                       'nfvo-components': 'src/nfvo-components',
-                       'sdc-app': 'src/sdc-app'
+let webpackCommon = require('./webpack.common');
+
+function getEntrySources(sources) {
+       for (let i in sources) {
+               if (sources.hasOwnProperty(i)) {
+                       sources[i].push('webpack-dev-server/client?http://localhost:' + devPort);
+                       sources[i].push('webpack/hot/only-dev-server');
                }
-       },
+       }
+       return sources;
+}
+
+let webpackDevConfig = Object.assign({}, webpackCommon, {
+       entry: getEntrySources(devConfig.bundles),
+       devtool: 'eval-source-map',
        output: {
-               path: path.join(__dirname, 'dist/dev'),
+               path: path.join(__dirname, 'dist'),
                publicPath: `http://localhost:${devPort}/onboarding/`,
                filename: '[name].js'
        },
@@ -68,36 +35,14 @@ module.exports = {
                port: devPort,
                historyApiFallback: true,
                publicPath: `http://localhost:${devPort}/onboarding/`,
-               contentBase: path.join(__dirname, 'dist/dev'),
+               contentBase: path.join(__dirname, 'dist'),
                hot: true,
-               progress: true,
                inline: true,
-               debug: true,
                stats: {
-                       colors: true
-               }
-       },
-       module: {
-               preLoaders: [
-                       {test: /\.(js|jsx)$/, loader: 'source-map-loader', exclude: /node_modules/}
-               ],
-               loaders: [
-                       {test: /\.(js|jsx)$/, loaders: ['react-hot', 'babel-loader', 'eslint-loader'], exclude: /node_modules/},
-                       {test: /\.(css|scss)$/, loaders: ['style', 'css?sourceMap', 'sass?sourceMap']},
-
-                       // required for font icons
-                       {test: /\.(woff|woff2)(\?.*)?$/,   loader: 'url-loader?limit=16384&mimetype=application/font-woff' },
-                       {test: /\.(ttf|eot|otf)(\?.*)?$/,    loader: 'file-loader' },
-                       {test: /\.(png|jpg|svg)(\?.*)?$/, loader: 'url-loader?limit=16384'},
-
-                       {test: /\.json$/, loaders: ['json']},
-                       {test: /\.html$/, loaders: ['html']}
-               ]
-       },
-       eslint: {
-               configFile: './.eslintrc',
-               emitError: true,
-               emitWarning: true
+                       colors: true,
+                       exclude: ['node_modules']
+               },
+               setup: proxyServer
        },
        plugins: [
                new webpack.DefinePlugin({
@@ -105,18 +50,17 @@ module.exports = {
                        DEBUG: true
                }),
                new webpack.HotModuleReplacementPlugin(),
-               new webpack.ProgressPlugin(function (percentage, msg) {
-                       if (percentage == 0) {
-                               latestProgress = 0;
-                               console.log(); //new line
-                       }
-                       var progressVal = (percentage * 100).toFixed(0);
-                       if (progressVal > latestProgress) {
-                               latestProgress = progressVal
-                               //process.stdout.clearLine();
-                               process.stdout.write(msg + ' ' + progressVal + '%\r');
+               new webpack.LoaderOptionsPlugin({
+                       options: {
+                               eslint: {
+                                       configFile: './.eslintrc',
+                                       emitError: true,
+                                       emitWarning: true
+                               },
+                               context: '/'
                        }
                })
        ]
+});
 
-};
+module.exports = webpackDevConfig;