-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathrollup.config.js
51 lines (49 loc) · 1.22 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
const typescript = require("@rollup/plugin-typescript");
const terser = require("@rollup/plugin-terser");
const autoExternal = require("rollup-plugin-auto-external");
const { globSync } = require("tinyglobby");
module.exports = {
input: globSync("./src/**/*.ts"),
output: {
dir: "lib",
format: "esm",
entryFileNames: "[name].mjs",
sourcemap: true,
preserveModules: true,
preserveModulesRoot: "src",
},
plugins: [
autoExternal(),
typescript({
tsconfig: "tsconfig.json",
module: "ES2020",
target: "ES2020",
}),
terser({
format: {
comments: "some",
beautify: true,
ecma: "2020",
},
compress: false,
mangle: false,
module: true,
}),
{
name: "copy-dts-to-dmts",
async generateBundle(_, bundle) {
for (const fileName of Object.keys(bundle)) {
if (fileName.endsWith(".d.ts")) {
const dtsFile = bundle[fileName];
const dmtsFileName = fileName.replace(/\.d\.ts$/, ".d.mts");
this.emitFile({
type: "asset",
fileName: dmtsFileName,
source: dtsFile.source,
});
}
}
},
},
],
};