form-preview-df
Version:
Resusable Form Preview Components
69 lines (64 loc) • 1.91 kB
JavaScript
// rollup.config.js (CommonJS)
const fs = require("fs");
const resolve =
require("@rollup/plugin-node-resolve").default ||
require("@rollup/plugin-node-resolve");
const commonjs = require("@rollup/plugin-commonjs");
const typescript = require("@rollup/plugin-typescript");
const postcss = require("rollup-plugin-postcss");
const dts =
require("rollup-plugin-dts").default || require("rollup-plugin-dts");
const { terser } = require("@rollup/plugin-terser") || {};
const packageJson = JSON.parse(fs.readFileSync("./package.json", "utf8"));
module.exports = [
// JS bundles (CJS + ESM)
{
input: "src/index.ts",
output: [
{
file: packageJson.main || "dist/index.cjs.js",
format: "cjs",
sourcemap: true,
name: "DfFormPreview",
inlineDynamicImports: true,
},
{
file: packageJson.module || "dist/index.esm.js",
format: "esm",
sourcemap: true,
inlineDynamicImports: true,
},
],
plugins: [
resolve({ browser: true, preferBuiltins: false }),
commonjs(),
typescript({
tsconfig: "./tsconfig.json",
exclude: ["**/*.test.*", "**/*.spec.*"],
}),
postcss({
extract: true,
minimize: true,
sourceMap: true,
}),
// keep terser optional (only if you installed @rollup/plugin-terser)
...(terser ? [terser()] : []),
],
external: ["react", "react-dom", "react-i18next", "i18next"],
},
// Type declaration bundle
{
input: "dist/index.d.ts",
output: [{ file: "dist/index.d.ts", format: "es" }],
plugins: [dts()],
external: (id) => {
if (!id) return false;
return (
id.endsWith(".css") ||
id.endsWith(".scss") ||
id.endsWith(".sass") ||
/\.s?css$/.test(id)
);
},
},
];