Açıklama Yok

rollup.config.js 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import babel from '@rollup/plugin-babel';
  2. import replace from '@rollup/plugin-replace';
  3. import bundleSize from '@atomico/rollup-plugin-sizes';
  4. import { terser } from 'rollup-plugin-terser';
  5. import visualizer from 'rollup-plugin-visualizer';
  6. import license from 'rollup-plugin-license';
  7. import flowEntry from 'rollup-plugin-flow-entry';
  8. import compiler from '@ampproject/rollup-plugin-closure-compiler';
  9. import pkg from '../package.json';
  10. const getFileName = (input) => input.split('/')[1].split('.')[0];
  11. const inputs = ['src/popper.js', 'src/popper-lite.js', 'src/popper-base.js'];
  12. const bundles = [
  13. { inputs, format: 'umd', dir: 'dist', minify: true, flow: true },
  14. { inputs, format: 'umd', dir: 'dist' },
  15. { inputs, format: 'cjs', dir: 'dist', flow: true },
  16. ];
  17. const configs = bundles
  18. .map(({ inputs, dir, format, minify, flow }) =>
  19. inputs.map((input) => ({
  20. input,
  21. plugins: [
  22. format === 'umd' &&
  23. replace({
  24. __DEV__: minify ? 'false' : 'true',
  25. }),
  26. babel({ babelHelpers: 'bundled' }),
  27. // The two minifiers together seem to procude a smaller bundle 🤷‍♂️
  28. minify && compiler(),
  29. minify && terser(),
  30. license({ banner: `@popperjs/core v${pkg.version} - MIT License` }),
  31. flow && flowEntry({ types: `lib/${getFileName(input)}.js` }),
  32. bundleSize(),
  33. visualizer({
  34. sourcemap: true,
  35. filename: `stats/${getFileName(input)}${minify ? '-min' : ''}.html`,
  36. }),
  37. ].filter(Boolean),
  38. output: {
  39. name: 'Popper',
  40. file: `${dir}/${format}/${getFileName(input)}${
  41. minify ? '.min' : ''
  42. }.js`,
  43. format,
  44. sourcemap: true,
  45. },
  46. }))
  47. )
  48. .flat();
  49. export default configs;