update: rollup config
* add rollup.ts * add esbuild register to devdeps * add rollup plugin dts to devdeps
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
import typescript from 'rollup-plugin-typescript2';
|
||||
import { terser } from 'rollup-plugin-terser';
|
||||
import dts from 'rollup-plugin-dts';
|
||||
import { OutputOptions, RollupOptions } from 'rollup';
|
||||
import commonjs from '@rollup/plugin-commonjs';
|
||||
import resolve from '@rollup/plugin-node-resolve';
|
||||
import babel from '@rollup/plugin-babel';
|
||||
import vue from 'rollup-plugin-vue';
|
||||
// @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: RollupOptions[] = [];
|
||||
|
||||
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: OutputOptions[] = [
|
||||
{
|
||||
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'
|
||||
}),
|
||||
vue()
|
||||
],
|
||||
external: ['vue', ...(external || [])]
|
||||
});
|
||||
|
||||
configs.push({
|
||||
input,
|
||||
output: {
|
||||
file: `dist/${fn}.d.ts`,
|
||||
format: 'es'
|
||||
},
|
||||
plugins: [dts()],
|
||||
external: ['vue', ...(external || [])]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default configs;
|
||||
Reference in New Issue
Block a user