==
import babel from '@rollup/plugin-babel'; import { nodeResolve } from '@rollup/plugin-node-resolve';
import typescript from '@rollup/plugin-typescript';
import commonjs from '@rollup/plugin-commonjs';
import VuePlugin from 'rollup-plugin-vue';
import copy from 'rollup-plugin-copy';
import path from 'path';
import fs from 'fs';
const base = path.resolve(__dirname, '.')
const dist = path.resolve(base, 'dist');
const componentsFolder = path.resolve(base, './vb/components');
const components = fs
.readdirSync(componentsFolder)
.filter((f) => {
return fs.statSync(path.join(componentsFolder, f)).isDirectory()
})
const entries = {
'index': path.join(base, './vb/entry-lib')
// components.reduce((obj, name) => {
// obj[name] = path.join(componentsFolder, name, 'index')
// return obj;
// }, {})
}
const plugin = {
name: 'synovue',
resolveId(file, importer) {
if (file.endsWith('.scss') || file.endsWith('.css')) {
return {
id: file,
external: true
}
}
return null;
}
}
const baseConfig = { input: entries, output: { format: 'esm', dir: `lib`, sourcemap: true, preserveModules: true, preserveModulesRoot: './vb' }, external: [ 'vue' ], plugins: [ copy({ targets: [{ src: 'vb/**/*.scss', dest: 'lib', }, { src: 'vb/**/*.(png|svg)', dest: 'lib', }], flatten: false }), plugin, commonjs(),
typescript(),
nodeResolve({
extensions: ['.vue', '.js', '.ts']
}),
VuePlugin({
css: false,
template: {
isProduction: true
},
needMap: false
}),
babel({ exclude: 'node_modules/**' }),
],
}