forked from AccelByte/justice-adminportal-extension-website
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config-overrides.js
63 lines (54 loc) · 1.75 KB
/
config-overrides.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
/*
* Copyright (c) 2021 AccelByte Inc. All Rights Reserved.
* This is licensed software from AccelByte Inc, for limitations
* and restrictions contact your company contract manager.
*/
const webpack = require("webpack");
const InterpolateHtmlPlugin = require("react-dev-utils/InterpolateHtmlPlugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const configPaths = require("./config/paths");
const path = require("path");
const NODE_ENV = process.env.NODE_ENV;
if (!NODE_ENV) {
throw new Error("The NODE_ENV environment variable is required but was not specified.");
}
const isDevMode = process.env.NODE_ENV === "development";
const dynamicEnvVars = [
"JUSTICE_BASE_URL",
"JUSTICE_BASE_PATH",
"JUSTICE_PUBLISHER_NAMESPACE",
"JUSTICE_ADMIN_BEARER_TOKEN_DEVMODE",
];
const getClientEnvironment = () => {
return dynamicEnvVars.reduce(
(reducer, key) =>
Object.assign(reducer, {
[key]: isDevMode ? JSON.stringify(process.env[key]) : JSON.stringify(`process.env["${key}"]`),
}),
{}
);
};
const getRawEnvar = () => {
return dynamicEnvVars.reduce((reducer, key) => Object.assign(reducer, { [key]: process.env[key] }), {});
};
module.exports = {
webpack: function override(config, env) {
const extraPlugins = [
new webpack.DefinePlugin({
"process.env": getClientEnvironment(),
}),
new InterpolateHtmlPlugin(HtmlWebpackPlugin, getRawEnvar()),
];
config.resolve.alias = {
...config.resolve.alias,
["~"]: path.resolve(__dirname, "./src"),
["@packages"]: path.resolve(__dirname, "./src/packages"),
};
config.plugins.push(...extraPlugins);
return config;
},
paths: function (paths, env) {
paths.appBuild = configPaths.appBuild;
return paths;
},
};