rollup.config.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import resolve from 'rollup-plugin-node-resolve';
  2. import commonjs from 'rollup-plugin-commonjs';
  3. import sourceMaps from 'rollup-plugin-sourcemaps';
  4. import { terser } from 'rollup-plugin-terser';
  5. const pkg = require('./package.json');
  6. const libraryName = pkg.name;
  7. const buildCjsPackage = ({ env }) => {
  8. return {
  9. input: `compiled/index.js`,
  10. output: [
  11. {
  12. file: `dist/index.${env}.js`,
  13. name: libraryName,
  14. format: 'cjs',
  15. sourcemap: true,
  16. exports: 'named',
  17. globals: {
  18. react: 'React',
  19. 'prop-types': 'PropTypes',
  20. },
  21. },
  22. ],
  23. external: ['react', 'react-dom', '@grafana/data'],
  24. plugins: [
  25. commonjs({
  26. include: /node_modules/,
  27. // When 'rollup-plugin-commonjs' fails to properly convert the CommonJS modules to ES6 one has to manually name the exports
  28. // https://github.com/rollup/rollup-plugin-commonjs#custom-named-exports
  29. namedExports: {
  30. '../../node_modules/lodash/lodash.js': [
  31. 'flatten',
  32. 'find',
  33. 'upperFirst',
  34. 'debounce',
  35. 'isNil',
  36. 'isNumber',
  37. 'flattenDeep',
  38. 'map',
  39. 'chunk',
  40. 'sortBy',
  41. 'uniqueId',
  42. 'zip',
  43. 'omit',
  44. ],
  45. '../../node_modules/react-color/lib/components/common': ['Saturation', 'Hue', 'Alpha'],
  46. '../../node_modules/immutable/dist/immutable.js': [
  47. 'Set',
  48. 'Map',
  49. 'List',
  50. 'OrderedSet',
  51. 'is',
  52. 'Stack',
  53. 'Record',
  54. ],
  55. '../../node_modules/esrever/esrever.js': ['reverse'],
  56. },
  57. }),
  58. resolve(),
  59. sourceMaps(),
  60. env === 'production' && terser(),
  61. ],
  62. };
  63. };
  64. export default [buildCjsPackage({ env: 'development' }), buildCjsPackage({ env: 'production' })];