forked from DalavanCloud/paypal-smart-payment-buttons
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
107 lines (93 loc) · 2.74 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/* @flow */
/* eslint import/no-nodejs-modules: off, import/no-default-export: off */
import type { WebpackConfig } from 'grumbler-scripts/config/types';
import { getWebpackConfig } from 'grumbler-scripts/config/webpack.config';
import { globals } from './globals';
const MODULE_NAME = 'spb';
type SmartWebpackConfig = {|
env? : string,
entry : string,
filename : string,
minify? : boolean,
debug? : boolean,
vars? : { [string] : mixed },
libraryTarget? : string
|};
function getSmartWebpackConfig({ entry, env, filename, minify = true, debug = false, libraryTarget = 'window' } : SmartWebpackConfig) : Object {
return getWebpackConfig({
env,
entry: `${ __dirname }/${ entry }`,
modulename: MODULE_NAME,
filename,
minify,
debug,
libraryTarget,
vars: globals,
sourcemaps: false
});
}
export const WEBPACK_CONFIG_BUTTONS : WebpackConfig = getSmartWebpackConfig({
entry: 'src/button',
filename: 'smart-payment-buttons',
minify: false,
debug: true,
vars: globals
});
export const WEBPACK_CONFIG_BUTTONS_MIN : WebpackConfig = getSmartWebpackConfig({
entry: 'src/button',
filename: 'smart-payment-buttons',
minify: true,
vars: globals
});
export const WEBPACK_CONFIG_BUTTONS_DEBUG : WebpackConfig = getSmartWebpackConfig({
entry: 'src/button',
filename: 'smart-payment-buttons',
debug: true,
minify: false,
vars: globals
});
export const WEBPACK_CONFIG_BUTTONS_LOCAL_DEBUG : WebpackConfig = getSmartWebpackConfig({
env: 'local',
entry: 'src/button',
filename: 'smart-payment-buttons',
debug: true,
minify: false,
vars: globals,
libraryTarget: 'umd'
});
export const WEBPACK_CONFIG_MENU : WebpackConfig = getSmartWebpackConfig({
entry: 'src/menu',
filename: 'smart-menu',
minify: false,
vars: globals
});
export const WEBPACK_CONFIG_MENU_MIN : WebpackConfig = getSmartWebpackConfig({
entry: 'src/menu',
filename: 'smart-menu',
minify: true,
vars: globals
});
export const WEBPACK_CONFIG_MENU_DEBUG : WebpackConfig = getSmartWebpackConfig({
entry: 'src/menu',
filename: 'smart-menu',
debug: true,
minify: false,
vars: globals
});
export const WEBPACK_CONFIG_TEST : WebpackConfig = getWebpackConfig({
modulename: MODULE_NAME,
test: true,
options: {
devtool: 'inline-source-map'
},
vars: {
...globals,
__TEST__: true
}
});
export default [
WEBPACK_CONFIG_BUTTONS,
WEBPACK_CONFIG_BUTTONS_MIN,
WEBPACK_CONFIG_MENU,
WEBPACK_CONFIG_MENU_MIN
];