/
rollup.config.mjs
61 lines (56 loc) · 1.25 KB
/
rollup.config.mjs
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
import path from "crosspath";
import ts from "rollup-plugin-ts";
import pkg from "./package.json" assert {type: "json"};
import {builtinModules} from "module";
const SHARED = () => ({
plugins: [
ts({
tsconfig: "tsconfig.build.json"
})
],
external: [...builtinModules, ...Object.keys(pkg.dependencies), ...Object.keys(pkg.devDependencies), ...Object.keys(pkg.peerDependencies)]
});
const SHARED_OUTPUT_OPTIONS = {
sourcemap: true,
hoistTransitiveImports: false,
generatedCode: "es2015",
compact: false,
minifyInternalExports: false,
manualChunks: id => (path.normalize(id).includes(`/src/transformer`) ? `common` : undefined)
};
export default [
{
input: {
index: "src/index.ts",
// ESM
loader: "src/loader/esm.ts"
},
output: [
{
dir: path.dirname(pkg.exports["."].import),
format: "esm",
entryFileNames: `[name].js`,
chunkFileNames: `common/[name].js`,
...SHARED_OUTPUT_OPTIONS
}
],
...SHARED()
},
{
input: {
index: "src/index.ts",
// CommonJS
loader: "src/loader/cjs.ts",
},
output: [
{
dir: path.dirname(pkg.exports["."].require),
format: "cjs",
entryFileNames: `[name].cjs`,
chunkFileNames: `common/[name].cjs`,
...SHARED_OUTPUT_OPTIONS
}
],
...SHARED()
},
];