rollup.config.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
  2. // SPDX-License-Identifier: Apache-2.0
  3. // SPDX-License-Identifier: MIT
  4. // rollup.config.js
  5. import { readFileSync } from 'fs'
  6. import { terser } from 'rollup-plugin-terser'
  7. import resolve from '@rollup/plugin-node-resolve'
  8. import commonjs from '@rollup/plugin-commonjs'
  9. import babel from '@rollup/plugin-babel'
  10. import typescript from '@rollup/plugin-typescript'
  11. import pkg from './package.json'
  12. import replace from '@rollup/plugin-replace'
  13. import TOML from '@tauri-apps/toml'
  14. const cliManifestContents = readFileSync('../cli.rs/Cargo.toml').toString()
  15. const cliManifest = TOML.parse(cliManifestContents)
  16. export default {
  17. input: {
  18. 'api/cli': './src/api/cli.ts',
  19. 'api/tauricon': './src/api/tauricon.ts',
  20. 'api/dependency-manager': './src/api/dependency-manager/index.ts',
  21. 'helpers/spawn': './src/helpers/spawn.ts',
  22. 'helpers/rust-cli': './src/helpers/rust-cli.ts',
  23. 'helpers/download-binary': './src/helpers/download-binary.ts'
  24. },
  25. treeshake: true,
  26. perf: true,
  27. output: {
  28. dir: 'dist/',
  29. entryFileNames: '[name].js',
  30. format: 'esm',
  31. exports: 'named',
  32. globals: {}
  33. },
  34. plugins: [
  35. replace({
  36. __RUST_CLI_VERSION__: JSON.stringify(cliManifest.package.version),
  37. 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
  38. }),
  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. }