UNPKG

@elora-cloud/elora-cli

Version:
62 lines (59 loc) 1.72 kB
import { rollup } from 'rollup'; import { EloraPluginAlias } from '../plugins/elora-plugin-alias.mjs'; import { EloraPluginStyle } from '../plugins/elora-plugin-style.mjs'; import scss from '../plugins/rollup-plugin-scss.mjs'; import '../utils/process.mjs'; import '../utils/paths.mjs'; import '../utils/pkg.mjs'; import { writeBundles } from '../utils/rollup.mjs'; async function EloraBuildStyle(options) { const { input, packageName } = options; const bundle = await rollup({ input, plugins: [EloraPluginAlias({ packageName }), EloraPluginStyle({ packageName })], external: (id) => { if (id.endsWith('.scss')) return true; return false; }, }); await writeBundles(bundle, [ // esm { format: 'es', dir: 'es', entryFileNames: '[name].mjs', preserveModules: true, preserveModulesRoot: 'src', }, // cjs { format: 'cjs', dir: 'lib', entryFileNames: '[name].js', preserveModules: true, preserveModulesRoot: 'src', }, ]); } async function EloraBundleStyle(option) { const { input, fileName = '[name]' } = option; const bundle = await rollup({ input, plugins: [ scss({ style: 'compressed', // 压缩输出的CSS fileName: 'style.css', }), ], }); await writeBundles(bundle, [ // cjs { format: 'cjs', dir: 'dist', entryFileNames: `${fileName}.js`, }, ]); } export { EloraBuildStyle, EloraBundleStyle };