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
|
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import { terser } from "rollup-plugin-terser";
import ts from "@rollup/plugin-typescript";
import pkg from "./package.json" assert { type: "json" };
const plugins = (browserslist, declaration) => {
const compilerOptions = { declaration };
if (declaration) {
compilerOptions.declarationDir = './build';
compilerOptions.noEmit = false;
}
return [
nodeResolve(),
commonjs(),
json(),
ts({
exclude: ['*/**/*test.ts'],
compilerOptions,
//{
// tsconfig: (resolvedConfig) => ({
// ...resolvedConfig,
// declaration,
// declarationMap: declaration,
// }),
// transpiler: "babel",
// browserslist,
//}
}),
]};
export default [
{
input: "src/embed.ts",
output: {
file: "build/vega-embed.module.js",
format: "esm",
sourcemap: true,
},
plugins: plugins(false, true),
external: [...Object.keys(pkg.dependencies), ...Object.keys(pkg.peerDependencies)],
},
{
input: "src/index.ts",
output: [
{
file: "build/vega-embed.js",
format: "umd",
sourcemap: true,
name: "vegaEmbed",
globals: {
vega: "vega",
"vega-lite": "vegaLite",
},
},
{
file: "build/vega-embed.min.js",
format: "umd", // cannot do iife because rollup generates code that expects Vega-Lite to be present
sourcemap: true,
name: "vegaEmbed",
globals: {
vega: "vega",
"vega-lite": "vegaLite",
},
plugins: [terser()],
},
],
plugins: plugins("defaults", false),
external: ["vega", "vega-lite"],
},
];
|