slate/rollup.config.js

53 lines
1.4 KiB
JavaScript

import babel from "rollup-plugin-babel";
import commonjs from "rollup-plugin-commonjs";
import resolve from "@rollup/plugin-node-resolve";
import { terser } from "rollup-plugin-terser";
import json from "@rollup/plugin-json";
const input = "./components/system/index.js";
const generateOutput = (outputPath) => {
return {
input,
output: {
file: outputPath,
format: "cjs",
},
external: ["@emotion/react", "react", "react-dom"],
plugins: [
json({ exclude: ["node_modules/**"], compact: true }),
babel({
exclude: ["node_modules/**", "**/*.json"],
runtimeHelpers: true,
}),
resolve(),
commonjs({
// NOTE(jim): Solution here fixed it.
// https://github.com/styled-components/styled-components/issues/1654
namedExports: {
"node_modules/react/index.js": [
"cloneElement",
"createContext",
"Component",
"createElement",
"forwardRef",
"useContext",
"Fragment",
"useRef",
"useLayoutEffect",
"PureComponent",
],
"node_modules/react-dom/index.js": ["render", "hydrate"],
"node_modules/react-tippy/dist/react-tippy.js": ["Tooltip"],
},
}),
terser(),
],
};
};
export default [
generateOutput("dist/index.js"),
generateOutput("../slate-react-system/src/index.js"),
];