@taeopia/react-table
Version:
This is a table library for use in React.
88 lines (79 loc) • 2.36 kB
JavaScript
import replace from "rollup-plugin-replace";
import postcssPrefixer from "postcss-prefixer";
import peerDepsExternal from "rollup-plugin-peer-deps-external";
import alias from "@rollup/plugin-alias";
import path from "path";
import autoprefixer from "autoprefixer";
import cssimport from "postcss-import";
import terser from "@rollup/plugin-terser";
import babel from "@rollup/plugin-babel";
import typescript from "rollup-plugin-typescript2";
import commonjs from "@rollup/plugin-commonjs";
import image from "@rollup/plugin-image";
import json from "@rollup/plugin-json";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import uglify from "rollup-plugin-uglify";
import filesize from "rollup-plugin-filesize";
import postcss from "rollup-plugin-postcss";
const __dirname = path.resolve();
export function getPlugins(extensions, pkg) {
return [
nodeResolve({ extensions }),
peerDepsExternal(),
postcss({
extract: "css/taeopia-table.css",
modules: false,
sourceMap: true,
use: ["sass"],
plugins: [postcssPrefixer({ prefix: `${pkg.name}__` }), cssimport(), autoprefixer()],
}),
babel({
babelHelpers: "bundled",
include: ["src/**/*"],
exclude: "node_modules/**",
presets: ["@babel/preset-env", "@babel/preset-react"],
}),
json(),
image(),
commonjs(),
// typescript({ useTsconfigDeclarationDir: true }),
typescript({ tsconfig: "./tsconfig.json" }),
alias({
resolve: [".ts", ".tsx"],
entries: [{ find: "@/", replacement: path.resolve(__dirname, "./dist/src/") }],
}),
replace({
ENV: JSON.stringify(process.env.NODE_ENV || "development"),
}),
process.env.NODE_ENV === "production" && uglify(),
terser({ maxWorkers: 4 }),
filesize(),
];
}
export function getOutputOptions(pkg) {
const globals = {
react: "React",
"react-dom": "ReactDOM",
"react/jsx-runtime": "jsxRuntime",
};
return [
{
format: "cjs",
file: pkg.main,
sourcemap: true,
preserveModulesRoot: "src",
globals,
},
{
format: "esm",
file: pkg.module,
sourcemap: true,
},
{
format: "umd",
file: pkg.browser,
name: pkg.name,
globals,
},
];
}