@codady/axui
Version:
The AXUI front-end framework is built on HTML5, CSS3, and JavaScript standards, with TypeScript used for type management. It has no library dependencies and is designed to meet diverse needs with a focus on design.
47 lines (40 loc) • 1.36 kB
JavaScript
// mini.js
import { exec } from 'child_process';
// 用于执行命令的函数
const runCommand = (command) => {
return new Promise((resolve, reject) => {
exec(command, (error, stdout, stderr) => {
if (error) {
reject(`exec error: ${error}`);
return;
}
if (stderr) {
reject(`stderr: ${stderr}`);
return;
}
resolve(stdout);
});
});
};
// 定义压缩 JavaScript 的通用命令
//-c表示压缩精简,-m表示混淆变量
const minifyJsFile = (input, output) => {
const command = `npx terser ${input} -o ${output} -c arguments,dead_code,directives,arrows,drop_console -m keep_classnames=true,keep_fnames=true`;
return runCommand(command);
};
// 定义压缩任务
const minifyJs = async () => {
try {
// 执行 JavaScript 文件压缩
await minifyJsFile('./dist/js/ax.js', './dist/js/ax.min.js');
await minifyJsFile('./dist/js/ax.esm.js', './dist/js/ax.esm.min.js');
await minifyJsFile('./dist/js/ax.cjs.js', './dist/js/ax.cjs.min.js');
// 压缩 CSS 文件
await runCommand('cleancss -o ./dist/css/ax.min.css ./dist/css/ax.css');
console.log('Minification complete.');
} catch (error) {
console.error(`Error during minification: ${error}`);
}
};
// 执行压缩任务
minifyJs();