rollup.config.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import nodeResolve from 'rollup-plugin-node-resolve';
  2. import uglify from 'rollup-plugin-uglify';
  3. import progress from 'rollup-plugin-progress';
  4. import sourcemaps from 'rollup-plugin-sourcemaps';
  5. import visualizer from 'rollup-plugin-visualizer';
  6. var MINIFY = process.env.MINIFY;
  7. var MONOLITHIC = process.env.MONOLITHIC;
  8. var ROUTER = process.env.ROUTER;
  9. var EVENTS = process.env.EVENTS;
  10. var RESOLVE = process.env.RESOLVE;
  11. var pkg = require('./package.json');
  12. var banner =
  13. `/**
  14. * ${pkg.description}`;
  15. if (ROUTER && MONOLITHIC) {
  16. banner += `
  17. * NOTICE: This monolithic bundle also bundles the @uirouter/core code.
  18. * This causes it to be incompatible with plugins that depend on @uirouter/core.
  19. * We recommend switching to the ui-router-core.js and ui-router-angularjs.js bundles instead.
  20. * For more information, see http://ui-router.github.io/blog/angular-ui-router-umd-bundles`
  21. } else if (ROUTER) {
  22. banner += `
  23. * This bundle requires the ui-router-core.js bundle from the @uirouter/core package.`
  24. }
  25. banner += `
  26. * @version v${pkg.version}
  27. * @link ${pkg.homepage}
  28. * @license MIT License, http://www.opensource.org/licenses/MIT
  29. */`;
  30. var uglifyOpts = { output: {} };
  31. // retain multiline comment with @license
  32. uglifyOpts.output.comments = (node, comment) =>
  33. comment.type === 'comment2' && /@license/i.test(comment.value);
  34. var plugins = [
  35. nodeResolve({jsnext: true}),
  36. progress({ clearLine: false }),
  37. sourcemaps(),
  38. ];
  39. if (MINIFY) plugins.push(uglify(uglifyOpts));
  40. if (ROUTER && MINIFY) plugins.push(visualizer({ sourcemap: true }));
  41. var extension = MINIFY ? ".min.js" : ".js";
  42. const BASE_CONFIG = {
  43. sourceMap: true,
  44. format: 'umd',
  45. exports: 'named',
  46. plugins: plugins,
  47. banner: banner,
  48. };
  49. const ROUTER_CONFIG = Object.assign({
  50. moduleName: '@uirouter/angularjs',
  51. entry: 'lib-esm/index.js',
  52. dest: 'release/ui-router-angularjs' + extension,
  53. globals: { angular: 'angular', '@uirouter/core': '@uirouter/core' },
  54. external: ['angular', '@uirouter/core'],
  55. }, BASE_CONFIG);
  56. // Also bundles the code from @uirouter/core into the same bundle
  57. const MONOLITHIC_ROUTER_CONFIG = Object.assign({
  58. moduleName: '@uirouter/angularjs',
  59. entry: 'lib-esm/index.js',
  60. dest: 'release/angular-ui-router' + extension,
  61. globals: { angular: 'angular' },
  62. external: 'angular',
  63. }, BASE_CONFIG);
  64. const EVENTS_CONFIG = Object.assign({}, BASE_CONFIG, {
  65. moduleName: '@uirouter/angularjs-state-events',
  66. entry: 'lib-esm/legacy/stateEvents.js',
  67. dest: 'release/stateEvents' + extension,
  68. globals: { angular: 'angular', '@uirouter/core': '@uirouter/core' },
  69. external: ['angular', '@uirouter/core'],
  70. });
  71. const RESOLVE_CONFIG = Object.assign({}, BASE_CONFIG, {
  72. moduleName: '@uirouter/angularjs-resolve-service',
  73. entry: 'lib-esm/legacy/resolveService.js',
  74. dest: 'release/resolveService' + extension,
  75. globals: { angular: 'angular', '@uirouter/core': '@uirouter/core' },
  76. external: ['angular', '@uirouter/core'],
  77. });
  78. const CONFIG =
  79. RESOLVE ? RESOLVE_CONFIG :
  80. EVENTS ? EVENTS_CONFIG :
  81. MONOLITHIC ? MONOLITHIC_ROUTER_CONFIG :
  82. ROUTER ? ROUTER_CONFIG : ROUTER_CONFIG;
  83. export default CONFIG;