-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollup.config.js
51 lines (49 loc) · 1.24 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
/* prod 配置 */
import { nodeResolve } from "@rollup/plugin-node-resolve"
import commonjs from "@rollup/plugin-commonjs"
import typescript from "rollup-plugin-typescript2"
import { terser } from "rollup-plugin-terser"
export default {
input: "src/index.ts",
output: [
{
file: "./lib/bundle.js",
format: "cjs",
banner: injectDateForBuild
},
{
file: "./esm/bundle.js",
format: "es",
banner: injectDateForBuild
}
],
plugins: [
nodeResolve(),
commonjs(),
terser({
output: {
comments: function (node, comment) {
var text = comment.value
var type = comment.type
if (type == "comment2") {
// multiline comment
return /@preserve|@license|@cc_on|@Version/i.test(text)
}
}
}
}),
typescript({
tsconfig: "tsconfig.json",
useTsconfigDeclarationDir: true
})
]
}
function injectDateForBuild() {
return new Promise((resolve) => {
const v = new Date()
const buildDate = `${v.getFullYear()}-${
v.getMonth() + 1
}-${v.getDate()} ${v.getHours()}:${v.getMinutes()}:${v.getSeconds()}`
resolve("/* @Version:" + "pkg-version" + " " + "Build Date:" + buildDate + " */")
})
}