rollup.config.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const generate = require('videojs-generate-rollup-config');
  2. const string = require('rollup-plugin-string').string;
  3. const replace = require('@rollup/plugin-replace');
  4. // see https://github.com/videojs/videojs-generate-rollup-config
  5. // for options
  6. const options = {
  7. input: 'src/index.js',
  8. plugins(defaults) {
  9. defaults.test.unshift('string');
  10. defaults.module.unshift('replace');
  11. return defaults;
  12. },
  13. primedPlugins(defaults) {
  14. defaults.string = string({include: ['test/manifests/*.mpd']});
  15. // when using "require" rather than import
  16. // require cjs module
  17. defaults.replace = replace({
  18. // single quote replace
  19. "require('@videojs/vhs-utils/es": "require('@videojs/vhs-utils/cjs",
  20. // double quote replace
  21. 'require("@videojs/vhs-utils/es': 'require("@videojs/vhs-utils/cjs'
  22. });
  23. return defaults;
  24. },
  25. externals(defaults) {
  26. defaults.module.push('@videojs/vhs-utils');
  27. defaults.module.push('@xmldom/xmldom');
  28. defaults.module.push('atob');
  29. defaults.module.push('url-toolkit');
  30. return defaults;
  31. },
  32. globals(defaults) {
  33. defaults.browser['@xmldom/xmldom'] = 'window';
  34. defaults.browser.atob = 'window.atob';
  35. defaults.test['@xmldom/xmldom'] = 'window';
  36. defaults.test.atob = 'window.atob';
  37. defaults.test.jsdom = '{JSDOM: function() { return {window: window}; }}';
  38. return defaults;
  39. }
  40. };
  41. const config = generate(options);
  42. if (config.builds.test) {
  43. config.builds.testNode = config.makeBuild('test', {
  44. input: 'test/**/*.test.js',
  45. output: [{
  46. name: `${config.settings.exportName}Tests`,
  47. file: 'test/dist/bundle-node.js',
  48. format: 'cjs'
  49. }]
  50. });
  51. config.builds.testNode.output[0].globals = {};
  52. config.builds.testNode.external = [].concat(config.settings.externals.module).concat([
  53. 'jsdom',
  54. 'qunit'
  55. ]);
  56. }
  57. // Add additonal builds/customization here!
  58. // export the builds to rollup
  59. export default Object.values(config.builds);