rt-graphic-component/rollup.config.cjs
2024-01-04 15:14:25 +08:00

48 lines
1.2 KiB
JavaScript

const { resolve, relative, extname } = require('path');
const { readdirSync } = require('fs');
const typescript = require('@rollup/plugin-typescript');
const { default: alias } = require('@rollup/plugin-alias');
/**
* @type {import('rollup').RollupOptions}
*/
const config = {
external: ['jl-graphic'],
input: getEntryPoints('src/packages', 'src'),
output: {
dir: 'components',
format: 'esm',
preserveModules: true,
},
plugins: [
alias({
entries: [{ find: 'common', replacement: 'src/common' }],
}),
typescript({
tsconfig: './tsconfig.json',
compilerOptions: {
declaration: true,
declarationDir: 'components',
},
}),
],
};
module.exports = config;
function getEntryPoints(dir, root) {
let entries = {};
const items = readdirSync(dir, { withFileTypes: true });
for (const item of items) {
const fullPath = resolve(dir, item.name);
const relativePath = relative(root, fullPath);
const relativeName = relativePath.replace(extname(item.name), '');
if (item.isDirectory()) {
const subentries = getEntryPoints(fullPath, root);
entries = { ...entries, ...subentries };
} else {
entries[relativeName] = fullPath;
}
}
return entries;
}