rollup.config.js 2.3 KB

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