62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
import fs from 'node:fs';
|
|
import path from 'path';
|
|
import uglifyjs from 'uglify-js';
|
|
|
|
const copySpider = ['app', 'kunyu77_open', 'alist_open'];
|
|
|
|
const root = process.cwd();
|
|
|
|
const src = path.join(root);
|
|
const out = path.join(root, 'dist');
|
|
|
|
function minify(s, d) {
|
|
var jsContent = fs.readFileSync(s).toString();
|
|
jsContent = jsContent.replace('./lib/cat.js', 'assets://js/lib/cat.js');
|
|
jsContent = jsContent.replace('./cat.js', 'assets://js/lib/cat.js');
|
|
jsContent = uglifyjs.minify(jsContent, {
|
|
mangle: false,
|
|
});
|
|
fs.writeFileSync(d, jsContent.code);
|
|
}
|
|
|
|
function listAllFiles(dirPath, arrayOfFiles) {
|
|
var files = fs.readdirSync(dirPath);
|
|
|
|
arrayOfFiles = arrayOfFiles || [];
|
|
|
|
files.forEach(function (file) {
|
|
if (fs.statSync(dirPath + '/' + file).isDirectory()) {
|
|
arrayOfFiles = listAllFiles(dirPath + '/' + file, arrayOfFiles);
|
|
} else {
|
|
arrayOfFiles.push(path.join(dirPath, '/', file));
|
|
}
|
|
});
|
|
|
|
return arrayOfFiles;
|
|
}
|
|
|
|
function src2Out() {
|
|
if (fs.existsSync(out)) fs.rmSync(out, { recursive: true, force: true });
|
|
|
|
fs.mkdirSync(out, { recursive: true });
|
|
const libSrc = path.join(src, 'lib');
|
|
const libOut = path.join(out, 'lib');
|
|
fs.mkdirSync(libOut, { recursive: true });
|
|
const libs = listAllFiles(libSrc);
|
|
for (let index = 0; index < libs.length; index++) {
|
|
const element = libs[index];
|
|
const relative = path.relative(libSrc, element);
|
|
minify(element, path.join(libOut, relative));
|
|
}
|
|
|
|
for (const sp of copySpider) {
|
|
minify(path.join(src, sp + '.js'), path.join(out, sp + '.js'));
|
|
}
|
|
}
|
|
|
|
src2Out();
|
|
|
|
fs.copyFileSync(path.join(src, 'config_open.json'), path.join(out, 'config_open.json'));
|
|
|
|
console.log('done');
|