This repository has been archived by the owner on Jul 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.config.js
69 lines (59 loc) · 1.66 KB
/
webpack.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
const path = require("path");
const Webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const VirtualModulePlugin = require("virtual-module-webpack-plugin")
const process = require("process")
const plugins = [
new HtmlWebpackPlugin({
template: "./app/index.html",
filename: "index.html",
inject: "body",
title: "AlumniEI Mentorship Program",
}),
new VirtualModulePlugin({
moduleName: "app/config.json",
contents: {
apiBaseURL: process.env.API_BASE_URL
}
}),
new Webpack.ProvidePlugin({
Promise: "bluebird",
}),
];
if (process.env.NODE_ENV === "production") {
plugins.push(
new Webpack.optimize.UglifyJsPlugin({
sourceMap: true,
})
);
}
module.exports = {
entry: "./app/index.jsx",
resolve: {
extensions: [".js",".jsx",".json", ".scss"],
modules: [path.resolve(__dirname, "app"), "node_modules"],
},
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "dist"),
publicPath: "/",
},
devServer: {
host: "0.0.0.0",
historyApiFallback: {
disableDotRule: true,
}
},
devtool: "source-map",
module: {
rules: [
{ test: /\.jsx?$/, use: "eslint-loader", exclude: /node_modules/, enforce: "pre" },
{ test: /\.jsx?$/, use: "babel-loader", exclude: /node_modules/ },
{ test: /\.jsx?$/, use: "babel-loader", exclude: /node_modules/ },
{ test: /\.scss$/, use: ["style-loader", "css-loader", "sass-loader"], exclude: /node_modules/ },
{ test: /\.css$/, use: ["style-loader", "css-loader"] },
{ test: /\.yml$/, use: ["json-loader", "yaml-loader"], exclude: /node_modules/ },
],
},
plugins,
};