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');