forked from paypal/paypal-messaging-components
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebpack.config.js
More file actions
95 lines (86 loc) · 2.53 KB
/
Copy pathwebpack.config.js
File metadata and controls
95 lines (86 loc) · 2.53 KB
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
const { getWebpackConfig } = require('grumbler-scripts/config/webpack.config');
const globals = require('./globals');
module.exports = (env = {}) => {
// messaging.js
const MESSAGES_CONFIG = getWebpackConfig({
entry: './src/index.js',
filename: 'messaging.js',
modulename: ['paypal', 'Messages'],
libraryTarget: env.demo ? 'umd' : 'window',
web: true,
minify: true,
debug: false,
analyze: env.analyze,
env: env.NODE_ENV,
vars: globals({
...env,
TARGET: 'standalone'
})
});
MESSAGES_CONFIG.output.libraryExport = 'Messages';
// zoid components
const COMPONENTS_CONFIG = getWebpackConfig({
libraryTarget: 'window',
modulename: 'crc',
web: true,
minify: true,
debug: false,
analyze: env.analyzeComponents,
filename: '[name].js',
env: env.NODE_ENV,
vars: globals({
...env,
TARGET: 'components'
})
});
COMPONENTS_CONFIG.entry = ['US', 'US-EZP', 'DE', 'GB'].reduce(
(accumulator, locale) => ({
...accumulator,
[`smart-credit-modal-${locale}`]: `./src/components/modal/content/${locale}/index.js`
}),
{
'smart-credit-message': './src/components/message/index.js'
}
);
COMPONENTS_CONFIG.optimization.splitChunks = {
chunks: 'all',
name: 'smart-credit-common'
};
// TODO: Remove this after the ramp
const MODAL_CONFIG = getWebpackConfig({
entry: './src/old/modal/index.js',
filename: 'smart-credit-modal.js',
libraryTarget: 'window',
modulename: 'crc',
web: true,
minify: true,
debug: false,
env: env.NODE_ENV,
vars: globals({
...env,
TARGET: 'modal'
})
});
const RENDERING_CONFIG = getWebpackConfig({
entry: ['./server/index.js'],
libraryTarget: 'commonjs',
modulename: 'renderMessage',
minify: true,
debug: false,
filename: 'renderMessage.js',
env: env.NODE_ENV,
vars: globals({
...env,
TARGET: 'render'
})
});
const modules = {
library: [MESSAGES_CONFIG],
components: [COMPONENTS_CONFIG, MODAL_CONFIG],
render: [RENDERING_CONFIG]
};
return Array.prototype.concat.apply(
[],
(env.MODULE || 'library,components,render').split(',').map(module => modules[module])
);
};