== 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/**' }), ], }