37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// 找到 assets 里的 css 文件
|
|
const assets = fs.readdirSync('templates/assets');
|
|
const cssFile = assets.find((f) => f.endsWith('.css') && f !== '.gitkeep');
|
|
const css = fs.readFileSync(path.join('templates/assets', cssFile), 'utf8');
|
|
|
|
// 简单 CSS beautifier(带缩进)
|
|
function beautify(css) {
|
|
let out = '';
|
|
let indent = 0;
|
|
let i = 0;
|
|
while (i < css.length) {
|
|
const ch = css[i];
|
|
if (ch === '{') {
|
|
out += ' {\n';
|
|
indent++;
|
|
} else if (ch === '}') {
|
|
indent = Math.max(0, indent - 1);
|
|
out += '\n' + ' '.repeat(indent) + '}\n';
|
|
} else if (ch === ';') {
|
|
out += ';\n' + ' '.repeat(indent);
|
|
} else if (ch === '\n' || ch === '\r') {
|
|
// 跳过原始换行
|
|
} else {
|
|
out += ch;
|
|
}
|
|
i++;
|
|
}
|
|
return out;
|
|
}
|
|
|
|
const beautified = beautify(css);
|
|
fs.writeFileSync('src/css/main.css', beautified);
|
|
console.log('✓ CSS 反压缩完成 -> src/css/main.css (' + beautified.length + ' 字符)');
|