@elora-cloud/elora-cli
Version:
elora build cli 前端打包脚手架
65 lines (61 loc) • 1.86 kB
JavaScript
;
var rollup = require('rollup');
var eloraPluginAlias = require('../plugins/elora-plugin-alias.cjs');
var eloraPluginStyle = require('../plugins/elora-plugin-style.cjs');
var rollupPluginScss = require('../plugins/rollup-plugin-scss.cjs');
require('../utils/process.cjs');
require('../utils/paths.cjs');
require('../utils/pkg.cjs');
var rollup$1 = require('../utils/rollup.cjs');
async function EloraBuildStyle(options) {
const { input, packageName } = options;
const bundle = await rollup.rollup({
input,
plugins: [eloraPluginAlias.EloraPluginAlias({ packageName }), eloraPluginStyle.EloraPluginStyle({ packageName })],
external: (id) => {
if (id.endsWith('.scss'))
return true;
return false;
},
});
await rollup$1.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.rollup({
input,
plugins: [
rollupPluginScss({
style: 'compressed', // 压缩输出的CSS
fileName: 'style.css',
}),
],
});
await rollup$1.writeBundles(bundle, [
// cjs
{
format: 'cjs',
dir: 'dist',
entryFileNames: `${fileName}.js`,
},
]);
}
exports.EloraBuildStyle = EloraBuildStyle;
exports.EloraBundleStyle = EloraBundleStyle;