via-icons/rollup.config.js

48 lines
1.1 KiB
JavaScript
Raw Normal View History

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;