48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
import fs from "fs";
|
|
import path from "path";
|
|
import typescript from "@rollup/plugin-typescript";
|
|
import babel from "@rollup/plugin-babel";
|
|
import resolve from "@rollup/plugin-node-resolve";
|
|
import commonjs from "@rollup/plugin-commonjs";
|
|
import { terser } from "rollup-plugin-terser";
|
|
|
|
const pkgPath = path.resolve("package.json");
|
|
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
|
|
const external = [
|
|
...Object.keys(pkg.dependencies || {}),
|
|
...Object.keys(pkg.peerDependencies || {}),
|
|
/@babel\/runtime/,
|
|
];
|
|
|
|
const rollupConfig = {
|
|
input: "src/index.ts",
|
|
output: {
|
|
dir: "dist",
|
|
format: "esm",
|
|
sourcemap: false,
|
|
preserveModules: true,
|
|
preserveModulesRoot: "src",
|
|
},
|
|
external,
|
|
plugins: [
|
|
resolve(),
|
|
commonjs(),
|
|
typescript({
|
|
tsconfig: "./tsconfig.json",
|
|
declaration: true,
|
|
noEmitOnError: true,
|
|
importHelpers: true,
|
|
}),
|
|
babel({
|
|
extensions: [".js", ".ts"],
|
|
babelHelpers: "runtime",
|
|
include: ["src/**/*"],
|
|
plugins: ["@babel/plugin-transform-runtime"],
|
|
}),
|
|
terser(),
|
|
],
|
|
};
|
|
|
|
export default rollupConfig;
|