rollup.config.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import resolve from "@rollup/plugin-node-resolve";
  2. import commonjs from "@rollup/plugin-commonjs";
  3. import filesize from "rollup-plugin-filesize";
  4. import babel from "@rollup/plugin-babel";
  5. import external from "rollup-plugin-peer-deps-external";
  6. import { terser } from "rollup-plugin-terser";
  7. import pkg from "./package.json";
  8. const input = "icons-react/index.js";
  9. const minifyExtension = (pathToFile) => pathToFile.replace(/\.js$/, ".min.js");
  10. const plugins = [
  11. babel({
  12. exclude: "node_modules/**",
  13. }),
  14. external(),
  15. resolve(),
  16. commonjs(),
  17. terser(),
  18. filesize(),
  19. ];
  20. export default [
  21. // CommonJS (for Node)
  22. {
  23. input,
  24. output: {
  25. file: pkg.main,
  26. format: "cjs",
  27. sourcemap: true,
  28. },
  29. plugins,
  30. },
  31. // CommonJS (for Node) minified
  32. {
  33. input,
  34. output: {
  35. file: minifyExtension(pkg.main),
  36. format: "cjs",
  37. sourcemap: true,
  38. },
  39. plugins
  40. },
  41. // UMD (for browser)
  42. {
  43. input,
  44. output: {
  45. file: pkg['umd:main'],
  46. format: "umd",
  47. sourcemap: true,
  48. name: "tablerIcons",
  49. globals: {
  50. react: "React",
  51. "react-dom": "ReactDOM",
  52. },
  53. },
  54. plugins,
  55. },
  56. // UMD (for browser) minified
  57. {
  58. input,
  59. output: {
  60. file: minifyExtension(pkg['umd:main']),
  61. format: "umd",
  62. sourcemap: true,
  63. name: "tablerIcons",
  64. globals: {
  65. react: "React",
  66. "react-dom": "ReactDOM",
  67. },
  68. },
  69. plugins
  70. },
  71. // ESM (for bundlers)
  72. {
  73. input,
  74. output: {
  75. file: pkg.module,
  76. format: "es",
  77. sourcemap: true,
  78. exports: "named",
  79. },
  80. plugins,
  81. },
  82. // ESM (for bundlers) minified
  83. {
  84. input,
  85. output: {
  86. file: minifyExtension(pkg.module),
  87. format: "es",
  88. sourcemap: true,
  89. exports: "named",
  90. },
  91. plugins
  92. },
  93. ];