forked from okta/okta-signin-widget
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.playground.config.js
72 lines (63 loc) · 1.47 KB
/
webpack.playground.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
70
71
72
/* global module __dirname */
const path = require('path');
const fs = require('fs');
const TARGET = path.resolve(__dirname, 'target');
const PLAYGROUND = path.resolve(__dirname, 'playground');
const DEFAULT_SERVER_PORT = 3000;
const WIDGET_RC = '.widgetrc';
let widgetRc = {
widgetOptions: {
baseUrl: 'https://{yourOktaDomain}',
logo: '/img/logo_widgico.png',
logoText: 'Windico',
features: {
router: true,
rememberMe: true,
multiOptionalFactorEnroll: true
},
// Host the assets (i.e. jsonp files) locally
assets: {
baseUrl: '/'
}
}
};
if (!fs.existsSync(WIDGET_RC)) {
// create default WIDGET_RC if it doesn't exist to simplifed the build process
fs.writeFileSync(WIDGET_RC, JSON.stringify(widgetRc, null, 2));
} else {
widgetRc = JSON.parse(fs.readFileSync(WIDGET_RC));
}
const PORT = widgetRc.serverPort || DEFAULT_SERVER_PORT;
module.exports = {
target: 'web',
entry: {
'playground.js': [`${PLAYGROUND}/main.js`]
},
output: {
path: `${PLAYGROUND}`,
filename: 'playground.bundle.js',
},
devtool: 'source-map',
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['env'],
}
},
{
test: /\.json$|\.widgetrc/,
loader: 'json-loader'
},
]
},
devServer: {
contentBase: [PLAYGROUND, TARGET],
compress: true,
port: PORT,
open: true,
},
};