rollup.config.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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-init-web.js"],
  118. output: [{
  119. file: "lib/single-file-extension-editor-init.js",
  120. format: "iife",
  121. plugins: [terser()]
  122. }],
  123. plugins: PLUGINS,
  124. external: EXTERNAL
  125. }, {
  126. input: ["src/ui/content/content-ui-editor-web.js"],
  127. output: [{
  128. file: "lib/single-file-extension-editor.js",
  129. format: "iife",
  130. plugins: []
  131. }],
  132. plugins: PLUGINS,
  133. external: EXTERNAL
  134. }, {
  135. input: ["single-file-core/single-file-editor-helper.js"],
  136. output: [{
  137. file: "lib/single-file-extension-editor-helper.js",
  138. format: "umd",
  139. name: "singlefile",
  140. plugins: [terser()]
  141. }],
  142. plugins: PLUGINS,
  143. external: EXTERNAL
  144. }, {
  145. input: ["src/lib/single-file/browser-polyfill/chrome-browser-polyfill.js"],
  146. output: [{
  147. file: "lib/chrome-browser-polyfill.js",
  148. format: "iife",
  149. plugins: [terser()]
  150. }]
  151. }, {
  152. input: ["src/core/bg/index.js"],
  153. output: [{
  154. file: "lib/single-file-extension-background.js",
  155. format: "iife",
  156. plugins: [terser()]
  157. }]
  158. }, {
  159. input: ["src/lib/single-file/background.js"],
  160. output: [{
  161. file: "lib/single-file-background.js",
  162. format: "iife",
  163. plugins: [terser()]
  164. }]
  165. }, {
  166. input: ["src/lib/web-stream/index.js"],
  167. output: [{
  168. file: "lib/web-stream.js",
  169. format: "iife",
  170. plugins: [terser()]
  171. }]
  172. }];