// Copyright 2019-2021 Tauri Programme within The Commons Conservancy // SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: MIT // rollup.config.js import { readFileSync } from 'fs' import { terser } from 'rollup-plugin-terser' import resolve from '@rollup/plugin-node-resolve' import commonjs from '@rollup/plugin-commonjs' import babel from '@rollup/plugin-babel' import typescript from '@rollup/plugin-typescript' import pkg from './package.json' import replace from '@rollup/plugin-replace' import TOML from '@tauri-apps/toml' const cliManifestContents = readFileSync('../cli.rs/Cargo.toml').toString() const cliManifest = TOML.parse(cliManifestContents) export default { input: { 'api/cli': './src/api/cli.ts', 'api/tauricon': './src/api/tauricon.ts', 'api/dependency-manager': './src/api/dependency-manager/index.ts', 'helpers/spawn': './src/helpers/spawn.ts', 'helpers/rust-cli': './src/helpers/rust-cli.ts', 'helpers/download-binary': './src/helpers/download-binary.ts' }, treeshake: true, perf: true, output: [ { dir: 'dist/', entryFileNames: '[name].js', format: 'esm', exports: 'named', globals: {} }, { dir: 'dist/', entryFileNames: '[name].cjs', format: 'cjs', chunkFileNames: '[name]-[hash].cjs', exports: 'named', globals: {} } ], plugins: [ replace({ __RUST_CLI_VERSION__: JSON.stringify(cliManifest.package.version), 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV) }), commonjs({}), resolve({ // pass custom options to the resolve plugin customResolveOptions: { moduleDirectories: ['node_modules'] } }), typescript({ tsconfig: './tsconfig.json' }), babel({ configFile: false, presets: [['@babel/preset-env'], ['@babel/preset-typescript']] }), terser() ], external: [ ...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {}) ] }