Made a build script executable
[aai/sparky-fe.git] / webpack.devConfig.js
1 /*
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017-2018 Amdocs
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21 'use strict';
22
23 var path = require('path');
24 var webpack = require('webpack');
25 var devPort = process.env.PORT || 8001;
26 var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
27
28 module.exports = {
29   devtool: 'source-map',
30   entry: {
31     bundle: [
32       'app/main.app.jsx',
33       'webpack/hot/only-dev-server'
34     ],
35     'editAttributes/editAttributesBundle': [
36       'editAttributes/main.app.jsx',
37       'webpack/hot/only-dev-server'
38     ]
39   },
40   output: {
41     path: path.join(__dirname, 'dist'),
42     publicPath: ``,
43     filename: '[name].js',
44     sourceMapFilename: '[name].js.map'
45   },
46   resolve: {
47     root: [path.resolve('.')],
48     alias: {
49       app: 'src/app',
50       'generic-components': 'src/generic-components',
51       utils: 'src/utils',
52       images: 'resources/images',
53       editAttributes: 'src/editAttributes'
54     },
55     extensions: ["", ".webpack.js", ".web.js", ".js", ".json", ".jsx"]
56   },
57   devServer: {
58     port: devPort,
59     historyApiFallback: true,
60     publicPath: ``,
61     contentBase: path.join(__dirname, 'dist'),
62     hot: true,
63     progress: true,
64     inline: true,
65     debug: true,
66     https: true,
67     stats: {
68       colors: true
69     }
70   },
71   module: {
72     loaders: [
73       {test: /\.(js|jsx)$/, loaders: ['babel-loader', 'eslint-loader'], exclude: /node_modules/},
74       {test: /\.(css|scss)$/, loaders: ['style-loader', 'css-loader', 'sass-loader']},
75       // required for font icons
76       {test: /\.(woff|woff2|ttf|eot|otf)(\?.*)?$/, loader: 'url-loader?limit=163840&mimetype=application/font-woff&name=[name].[ext]'},
77       {test: /\.(png|jpg|svg)(\?.*)?$/, loader: 'url-loader?limit=163840&name=[name].[ext]'},
78       {test: /\.json$/, loaders: ['json']},
79       { test: /\.xml$/, loader: 'xml-loader' }
80     ]
81   },
82   eslint: {
83     configFile: './.eslintrc',
84     emitError: true,
85     emitWarning: true
86   },
87   plugins: [
88     //new BundleAnalyzerPlugin(),
89     new webpack.DefinePlugin({
90       DEBUG: true
91     }),
92
93     new webpack.HotModuleReplacementPlugin()
94   ]
95 };