-
-
Notifications
You must be signed in to change notification settings - Fork 32
/
rollup.config.ts
46 lines (43 loc) · 1007 Bytes
/
rollup.config.ts
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
import ts from "./src/index.js";
import {rollup} from "rollup";
import pkg from "./package.json" assert {type: "json"};
import {builtinModules} from "module";
const SHARED_OUTPUT_OPTIONS = {
sourcemap: true,
hoistTransitiveImports: false,
generatedCode: "es2015",
compact: false,
minifyInternalExports: false
} as const;
(async () => {
const bundle = await rollup({
input: "src/index.ts",
plugins: [
ts({
tsconfig: "tsconfig.build.json"
})
],
external: [...builtinModules, ...Object.keys(pkg.dependencies ?? {}), ...Object.keys(pkg.devDependencies ?? {}), ...Object.keys(pkg.peerDependencies ?? {})]
});
await Promise.all(
(
[
{
file: pkg.exports.require,
format: "cjs",
exports: "default",
dynamicImportInCjs: false,
...SHARED_OUTPUT_OPTIONS
},
{
file: pkg.exports.import,
format: "esm",
...SHARED_OUTPUT_OPTIONS
}
] as const
).map(bundle.write)
);
})().catch(ex => {
console.error(ex);
process.exit(1);
});