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: 'vue-flow', external: ['@vueuse/core'], }, ] // @ts-ignore for (const { external, iife } of activePackages) { const iifeGlobals = { 'vue': 'Vue', '@vueuse/core': 'VueUse', } const iifeName = 'RevueFlow' const functionNames = ['vue-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