forked from microsoft/applicationinsights-channel-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.config.js
94 lines (86 loc) · 2.23 KB
/
rollup.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
import nodeResolve from "rollup-plugin-node-resolve";
import {uglify} from "rollup-plugin-uglify";
import replace from "rollup-plugin-replace";
const version = require("./package.json").version;
const outputName = "applicationinsights-channel-js";
const banner = [
"/*!",
` * Application Insights JavaScript SDK - Channel, ${version}`,
" * Copyright (c) Microsoft and contributors. All rights reserved.",
" */"
].join("\n");
const browserRollupConfigFactory = isProduction => {
const browserRollupConfig = {
input: "dist-esm/applicationinsights-channel-js.js",
output: {
file: "browser/applicationinsights-channel-js.js",
banner: banner,
format: "umd",
name: "aichannel",
sourcemap: true
},
plugins: [
replace({
delimiters: ["", ""],
values: {
"// Copyright (c) Microsoft Corporation. All rights reserved.": "",
"// Licensed under the MIT License.": ""
}
}),
nodeResolve({
browser: false,
preferBuiltins: false
})
]
};
if (isProduction) {
browserRollupConfig.output.file = "browser/applicationinsights-channel-js.min.js";
browserRollupConfig.plugins.push(
uglify({
output: {
preamble: banner
}
})
);
}
return browserRollupConfig;
};
const nodeUmdRollupConfigFactory = (isProduction) => {
const nodeRollupConfig = {
input: `dist-esm/${outputName}.js`,
output: {
file: `dist/${outputName}.js`,
banner: banner,
format: "umd",
name: "aiproperties",
sourcemap: true
},
plugins: [
replace({
delimiters: ["", ""],
values: {
"// Copyright (c) Microsoft Corporation. All rights reserved.": "",
"// Licensed under the MIT License.": ""
}
}),
nodeResolve()
]
};
if (isProduction) {
nodeRollupConfig.output.file = `dist/${outputName}.min.js`;
nodeRollupConfig.plugins.push(
uglify({
output: {
preamble: banner
}
})
);
}
return nodeRollupConfig;
};
export default [
nodeUmdRollupConfigFactory(true),
nodeUmdRollupConfigFactory(false),
browserRollupConfigFactory(true),
browserRollupConfigFactory(false)
];