-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.config.js
60 lines (53 loc) · 1.77 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
const path = require('path');
const bundleAnalyzer = require('webpack-bundle-analyzer');
const bundleOutputDir = './dist';
const libDir = 'lib';
const libraryName = 'utilities';
const lastDirName = path.basename(__dirname);
const bundleAnalyzerDropPath = path.join(__dirname, 'temp', 'stats');
module.exports = () =>
{
const env = process.env.NODE_ENV && process.env.NODE_ENV.trim();
const isDevBuild = !(env && env === 'production');
return [{
mode: isDevBuild ? 'development' : 'production',
entry: { 'index': `./${libDir}/index.js` },
//resolve: { extensions: ['.js'] },
devtool: 'source-map',
output: {
path: path.join(__dirname, bundleOutputDir),
filename: `[name].js`,
//publicPath: 'dist/',
library: libraryName,
//libraryTarget: 'umd',
//globalObject: 'this'
},
module: {
rules: [
{
test: /\.js(on)?$/,
include: /lib/,
}
]
},
plugins: [
new bundleAnalyzer.BundleAnalyzerPlugin({
openAnalyzer: false,
analyzerMode: 'static',
reportFilename: path.join(bundleAnalyzerDropPath, `${lastDirName}.stats.html`),
generateStatsFile: true,
statsFilename: path.join(bundleAnalyzerDropPath, `${lastDirName}.stats.json`),
logLevel: 'error'
}),
...(isDevBuild
?
[
// Plugins that apply in development builds only
]
:
[
// Plugins that apply in production builds only
])
]
}];
};