rollup.config.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // rollup.config.js
  2. import { terser } from 'rollup-plugin-terser'
  3. import resolve from '@rollup/plugin-node-resolve'
  4. import commonjs from '@rollup/plugin-commonjs'
  5. import sucrase from '@rollup/plugin-sucrase'
  6. import babel, { getBabelOutputPlugin } from '@rollup/plugin-babel'
  7. import typescript from '@rollup/plugin-typescript'
  8. import pkg from './package.json'
  9. export default [
  10. {
  11. input: {
  12. app: './src/app.ts',
  13. fs: './src/fs.ts',
  14. path: './src/path.ts',
  15. dialog: './src/dialog.ts',
  16. event: './src/event.ts',
  17. updater: './src/updater.ts',
  18. http: './src/http.ts',
  19. index: './src/index.ts',
  20. shell: './src/shell.ts',
  21. tauri: './src/tauri.ts',
  22. window: './src/window.ts',
  23. cli: './src/cli.ts',
  24. notification: './src/notification.ts',
  25. globalShortcut: './src/globalShortcut.ts'
  26. },
  27. treeshake: true,
  28. perf: true,
  29. output: [
  30. {
  31. dir: 'dist/',
  32. entryFileNames: '[name].js',
  33. format: 'esm',
  34. exports: 'named',
  35. globals: {}
  36. }
  37. ],
  38. plugins: [
  39. commonjs({}),
  40. resolve({
  41. // pass custom options to the resolve plugin
  42. customResolveOptions: {
  43. moduleDirectories: ['node_modules']
  44. }
  45. }),
  46. typescript({
  47. tsconfig: './tsconfig.json'
  48. }),
  49. babel({
  50. configFile: false,
  51. presets: [['@babel/preset-env'], ['@babel/preset-typescript']]
  52. }),
  53. terser()
  54. ],
  55. external: [
  56. ...Object.keys(pkg.dependencies || {}),
  57. ...Object.keys(pkg.peerDependencies || {})
  58. ]
  59. },
  60. {
  61. input: {
  62. bundle: './src/bundle.ts'
  63. },
  64. output: [
  65. {
  66. name: '__TAURI__',
  67. dir: '../core/tauri/scripts',
  68. entryFileNames: 'bundle.js',
  69. format: 'umd',
  70. plugins: [
  71. getBabelOutputPlugin({
  72. presets: [['@babel/preset-env', { modules: 'umd' }]],
  73. allowAllFormats: true
  74. }),
  75. terser()
  76. ],
  77. globals: {}
  78. }
  79. ],
  80. plugins: [
  81. sucrase({
  82. exclude: ['node_modules'],
  83. transforms: ['typescript']
  84. }),
  85. resolve({
  86. // pass custom options to the resolve plugin
  87. customResolveOptions: {
  88. moduleDirectories: ['node_modules']
  89. }
  90. })
  91. ],
  92. external: [
  93. ...Object.keys(pkg.dependencies || {}),
  94. ...Object.keys(pkg.peerDependencies || {})
  95. ]
  96. }
  97. ]