-
Notifications
You must be signed in to change notification settings - Fork 23
/
webpack.config.js
71 lines (66 loc) · 1.63 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
const FileManagerPlugin = require ('filemanager-webpack-plugin');
const { readFileSync } = require('fs');
const { version: _version, zipPackageName = 'huaweicloud-obs-sdk-browserjs', isRelease = 'false', cidBuildTime = Date.now() } = process.env
let version;
let name = 'esdk-obs-browserjs';
try {
const res = JSON.parse(readFileSync('./package.json', { encoding: 'utf-8'}));
version = res.version;
name = res.name;
} catch (error) {
console.log('missing file: package.json')
}
version = _version ? _version : version;
let zipFileName = zipPackageName;
if (version) {
zipFileName += `_${version}`;
}
if (isRelease.toLowerCase() === 'false') {
zipFileName += `-${cidBuildTime}`;
}
zipFileName += '.tar.gz';
module.exports = {
mode: "production",
entry: {
[`${name}-without-polyfill`]: "./index.js",
[`${name}`]: ["@babel/polyfill", "./index.js"]
},
output: {
filename: `[name].${version}.min.js`,
library: {
name: 'ObsClient',
type: 'umd',
export: 'default',
}
},
target: ["web", "es5"],
module: {
rules: [
{
test: /\.m?js$/,
use: ["babel-loader?cacheDirectory=true"],
},
],
},
plugins: [
new FileManagerPlugin({
events: {
onEnd: {
archive: [
{
source: '../source',
destination: `${zipFileName}`,
format: 'tar',
options: {
globOptions: {
dot: true,
ignore: ['package-lock.json', 'node_modules', 'node_modules/**/*']
}
}
},
],
},
},
}),
]
};