forked from bigcommerce/checkout-sdk-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.js
59 lines (51 loc) · 1.45 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
const path = require('path');
const { DefinePlugin } = require('webpack');
const nodeExternals = require('webpack-node-externals');
const {
babelLoaderRules,
getBaseConfig,
libraryEntries,
libraryName,
} = require('./webpack-common.config');
const outputPath = path.join(__dirname, 'dist');
async function getUmdConfig(options, argv) {
const baseConfig = await getBaseConfig(options, argv);
return {
...baseConfig,
name: 'umd',
entry: libraryEntries,
output: {
filename: '[name].umd.js',
library: libraryName,
libraryTarget: 'umd',
path: outputPath,
},
module: {
rules: [...babelLoaderRules, ...baseConfig.module.rules],
},
};
}
async function getCjsConfig(options, argv) {
const baseConfig = await getBaseConfig(options, argv);
return {
...baseConfig,
name: 'cjs',
entry: libraryEntries,
externals: [nodeExternals()],
output: {
filename: '[name].js',
libraryTarget: 'commonjs2',
path: outputPath,
},
plugins: [
...baseConfig.plugins,
new DefinePlugin({
'process.env.NODE_ENV': 'process.env.NODE_ENV',
}),
],
};
}
async function getConfigs(options, argv) {
return [await getCjsConfig(options, argv), await getUmdConfig(options, argv)];
}
module.exports = getConfigs;