UNPKG

@amberflo-test/ui-kit-test

Version:

Test-Amberflo UI Kit

79 lines (70 loc) 2.11 kB
import babel from "@rollup/plugin-babel"; import { nodeResolve } from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; import postcss from "rollup-plugin-postcss"; import visualizer from "rollup-plugin-visualizer"; import alias from "rollup-plugin-alias"; import { terser } from "rollup-plugin-terser"; import * as path from "path"; import { readdirSync } from "fs"; const projectRootDir = path.resolve(path.dirname("")); import pkg from "./package.json"; const getDirectories = (source) => readdirSync(source, { withFileTypes: true }) .filter((dirent) => dirent.isDirectory()) .map((dirent) => `${source}/${dirent.name}`); const routes = [ ...getDirectories("src/components/atoms"), ...getDirectories("src/components/molecules"), ...getDirectories("src/components/organisms"), ]; const input = {}; routes.forEach((route) => { const [, packageName] = route.match(/.*\/(.*)/); input[packageName] = `${route}/index.jsx`; }); export default { input: { index: "src/components/index.js", ...input, }, output: [{ dir: pkg.module, format: "cjs" }], plugins: [ alias({ resolve: [".jsx", ".js"], entries: { utils: path.join(projectRootDir, "src/utils"), components: path.join(projectRootDir, "src/components"), styles: path.join(projectRootDir, "src/styles"), }, }), postcss({ plugins: [], minimize: true, extensions: [".css", ".sass"], }), nodeResolve({ extensions: [".ts", ".js", ".tsx", ".jsx"], }), babel({ presets: ["@babel/preset-react"], extensions: [".ts", ".js", ".tsx", ".jsx"], plugins: [ "@babel/plugin-proposal-nullish-coalescing-operator", "@babel/plugin-proposal-optional-chaining", "@babel/plugin-transform-runtime", ], babelHelpers: "runtime", }), commonjs(), terser(), visualizer({ filename: "bundle-analysis.html", open: true, }), ], external: [ ...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {}), ], };