import typescript from 'rollup-plugin-typescript2' import { terser } from 'rollup-plugin-terser' import dts from 'rollup-plugin-dts' import commonjs from '@rollup/plugin-commonjs' import resolve from '@rollup/plugin-node-resolve' import babel from '@rollup/plugin-babel' // @ts-ignore import svg from 'rollup-plugin-svg' import postcss from 'rollup-plugin-postcss' // @ts-ignore import { DEFAULT_EXTENSIONS as DEFAULT_BABEL_EXTENSIONS } from '@babel/core' const configs: any[] = [] const activePackages = [ { display: 'Revue-Flow', external: ['@vueuse/core'] } ] // @ts-ignore for (const { external, iife } of activePackages) { const iifeGlobals = { vue: 'Vue', '@vueuse/core': 'VueUse' } const iifeName = 'RevueFlow' const functionNames = ['revue-flow'] for (const fn of functionNames) { const input = 'src/index.ts' const output: any[] = [ { file: `dist/${fn}.cjs.js`, format: 'cjs' }, { file: `dist/${fn}.esm.js`, format: 'es' } ] if (iife !== false) { output.push( { file: `dist/${fn}.iife.js`, format: 'iife', name: iifeName, extend: true, globals: iifeGlobals }, { file: `dist/${fn}.iife.min.js`, format: 'iife', name: iifeName, extend: true, globals: iifeGlobals, plugins: [ terser({ format: { comments: false } }) ] } ) } configs.push({ input, output, plugins: [ typescript({ tsconfigOverride: { compilerOptions: { declaration: false } } }), svg(), resolve(), postcss({ inject: true, minimize: true }), commonjs({ include: 'node_modules/**' }), babel({ extensions: [...DEFAULT_BABEL_EXTENSIONS, '.ts', '.tsx'], exclude: 'node_modules/**', babelHelpers: 'bundled' }) ], external: ['vue', ...(external || [])] }) configs.push({ input, output: { file: `dist/${fn}.d.ts`, format: 'es' }, plugins: [dts()], external: ['vue', ...(external || []), /\.css$/] }) } } export default configs