rollup.config.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. import resolve from "@rollup/plugin-node-resolve";
  2. import terser from "@rollup/plugin-terser";
  3. const PLUGINS = [resolve({ moduleDirectories: ["node_modules"] })];
  4. const EXTERNAL = ["single-file-core"];
  5. const TERSER_HOOKS_OPTIONS = {
  6. mangle: {
  7. keep_fnames: true
  8. }
  9. };
  10. export default [{
  11. input: ["single-file-core/single-file.js"],
  12. output: [{
  13. file: "lib/single-file.js",
  14. format: "umd",
  15. name: "singlefile",
  16. plugins: [terser()]
  17. }],
  18. plugins: PLUGINS,
  19. external: EXTERNAL
  20. }, {
  21. input: ["single-file-core/single-file-frames.js"],
  22. output: [{
  23. file: "lib/single-file-frames.js",
  24. format: "umd",
  25. name: "singlefile",
  26. plugins: [terser()]
  27. }],
  28. plugins: PLUGINS,
  29. external: EXTERNAL
  30. }, {
  31. input: ["single-file-core/single-file-bootstrap.js"],
  32. output: [{
  33. file: "lib/single-file-bootstrap.js",
  34. format: "umd",
  35. name: "singlefileBootstrap",
  36. plugins: [terser()]
  37. }],
  38. plugins: PLUGINS,
  39. external: EXTERNAL
  40. }, {
  41. input: ["single-file-core/single-file-hooks-frames.js"],
  42. output: [{
  43. file: "lib/single-file-hooks-frames.js",
  44. format: "iife",
  45. plugins: [terser(TERSER_HOOKS_OPTIONS)]
  46. }],
  47. plugins: PLUGINS,
  48. external: EXTERNAL
  49. }, {
  50. input: ["single-file-core/single-file-infobar.js"],
  51. output: [{
  52. file: "lib/single-file-infobar.js",
  53. format: "iife",
  54. plugins: [terser()]
  55. }],
  56. plugins: PLUGINS,
  57. external: EXTERNAL
  58. }, {
  59. input: ["single-file-core/vendor/zip/z-worker.js"],
  60. output: [{
  61. file: "lib/single-file-z-worker.js",
  62. format: "es",
  63. plugins: [terser()]
  64. }],
  65. plugins: PLUGINS,
  66. external: EXTERNAL
  67. }, {
  68. input: ["single-file-core/vendor/zip/zip.js"],
  69. output: [{
  70. file: "lib/single-file-zip.js",
  71. format: "es",
  72. plugins: [terser()]
  73. }],
  74. context: "this",
  75. plugins: PLUGINS,
  76. external: EXTERNAL
  77. }, {
  78. input: ["single-file-core/vendor/zip/zip.min.js"],
  79. output: [{
  80. file: "lib/single-file-zip.min.js",
  81. format: "es",
  82. plugins: [terser()]
  83. }],
  84. context: "this",
  85. plugins: PLUGINS,
  86. external: EXTERNAL
  87. }, {
  88. input: ["src/core/content/content-bootstrap.js"],
  89. output: [{
  90. file: "lib/single-file-extension-bootstrap.js",
  91. format: "iife",
  92. plugins: [terser()]
  93. }]
  94. }, {
  95. input: ["src/core/content/content-frames.js"],
  96. output: [{
  97. file: "lib/single-file-extension-frames.js",
  98. format: "iife",
  99. plugins: [terser()]
  100. }]
  101. }, {
  102. input: ["src/index.js"],
  103. output: [{
  104. file: "lib/single-file-extension-core.js",
  105. format: "umd",
  106. name: "extension",
  107. plugins: [terser()]
  108. }]
  109. }, {
  110. input: ["src/core/content/content.js"],
  111. output: [{
  112. file: "lib/single-file-extension.js",
  113. format: "iife",
  114. plugins: [terser()]
  115. }]
  116. }, {
  117. input: ["src/ui/content/content-ui-editor-web.js"],
  118. output: [{
  119. file: "lib/single-file-extension-editor.js",
  120. format: "iife",
  121. plugins: []
  122. }],
  123. plugins: PLUGINS,
  124. external: EXTERNAL
  125. }, {
  126. input: ["single-file-core/single-file-editor-helper.js"],
  127. output: [{
  128. file: "lib/single-file-extension-editor-helper.js",
  129. format: "umd",
  130. name: "singlefile",
  131. plugins: [terser()]
  132. }],
  133. plugins: PLUGINS,
  134. external: EXTERNAL
  135. }, {
  136. input: ["src/lib/single-file/browser-polyfill/chrome-browser-polyfill.js"],
  137. output: [{
  138. file: "lib/chrome-browser-polyfill.js",
  139. format: "iife",
  140. plugins: [terser()]
  141. }]
  142. }, {
  143. input: ["src/core/bg/index.js"],
  144. output: [{
  145. file: "lib/single-file-extension-background.js",
  146. format: "iife",
  147. plugins: [terser()]
  148. }]
  149. }, {
  150. input: ["src/lib/single-file/background.js"],
  151. output: [{
  152. file: "lib/single-file-background.js",
  153. format: "iife",
  154. plugins: [terser()]
  155. }]
  156. }, {
  157. input: ["src/lib/web-stream/index.js"],
  158. output: [{
  159. file: "lib/web-stream.js",
  160. format: "iife",
  161. plugins: [terser()]
  162. }]
  163. }];