mirror of
https://github.com/MrUnknownDE/unknownbin.git
synced 2026-04-06 00:32:08 +02:00
41 lines
1.5 KiB
JavaScript
41 lines
1.5 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const UglifyJS = require('uglify-js');
|
|
const CleanCSS = require('clean-css');
|
|
|
|
console.log('Starting build process...');
|
|
|
|
const staticDir = path.join(__dirname, 'static');
|
|
const files = fs.readdirSync(staticDir);
|
|
|
|
files.forEach(item => {
|
|
const fullPath = path.join(staticDir, item);
|
|
let destPath;
|
|
|
|
if (item.endsWith('.css') && !item.endsWith('.min.css')) {
|
|
destPath = path.join(staticDir, item.replace('.css', '.min.css'));
|
|
try {
|
|
const source = fs.readFileSync(fullPath, 'utf8');
|
|
const result = new CleanCSS().minify(source);
|
|
fs.writeFileSync(destPath, result.styles, 'utf8');
|
|
console.log(`Compressed CSS: ${item} -> ${path.basename(destPath)}`);
|
|
} catch (err) {
|
|
console.error(`Error compressing ${item}:`, err);
|
|
}
|
|
} else if (item.endsWith('.js') && !item.endsWith('.min.js')) {
|
|
destPath = path.join(staticDir, item.replace('.js', '.min.js'));
|
|
try {
|
|
const source = fs.readFileSync(fullPath, 'utf8');
|
|
const result = UglifyJS.minify(source);
|
|
if (result.error) {
|
|
throw result.error;
|
|
}
|
|
fs.writeFileSync(destPath, result.code, 'utf8');
|
|
console.log(`Compressed JS: ${item} -> ${path.basename(destPath)}`);
|
|
} catch (err) {
|
|
console.error(`Error compressing ${item}:`, err);
|
|
}
|
|
}
|
|
});
|
|
|
|
console.log('Build process finished.'); |