新增图片批量处理

This commit is contained in:
yinsx
2026-01-15 10:24:02 +08:00
parent 1de2ac8491
commit 943bf4bbd4
18 changed files with 1208 additions and 123 deletions

View File

@ -1,47 +0,0 @@
#!/usr/bin/env node
import { promises as fs } from "fs";
import path from "path";
import { fileURLToPath } from "url";
import esbuild from "esbuild";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const rootDir = path.resolve(__dirname, "..");
const distDir = path.join(rootDir, "dist");
async function main() {
await fs.rm(distDir, { recursive: true, force: true });
await fs.mkdir(distDir, { recursive: true });
await esbuild.build({
entryPoints: [path.join(rootDir, "index.js")],
bundle: true,
platform: "node",
target: "node16",
format: "esm",
outfile: path.join(distDir, "index.js"),
minify: true,
external: ["sharp", "@cocos/fbx2gltf"],
});
// 添加 shebang
const outPath = path.join(distDir, "index.js");
const code = await fs.readFile(outPath, "utf8");
await fs.writeFile(outPath, "#!/usr/bin/env node\n" + code.replace(/^#!.*\n?/, ""), "utf8");
await copyDir(path.join(rootDir, "bin"), path.join(distDir, "bin"));
console.log("Build written to", distDir);
}
async function copyDir(src, dest) {
await fs.mkdir(dest, { recursive: true });
const entries = await fs.readdir(src);
for (const entry of entries) {
await fs.copyFile(path.join(src, entry), path.join(dest, entry));
}
}
main().catch(err => {
console.error("Build failed:", err);
process.exitCode = 1;
});

View File

@ -1,46 +0,0 @@
#!/usr/bin/env node
import { promises as fs } from "fs";
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const rootDir = path.resolve(__dirname, "..");
const distDir = path.join(rootDir, "dist");
const copyTargets = [
{ from: path.join(rootDir, "index.js"), to: path.join(distDir, "index.js") },
{ from: path.join(rootDir, "lib"), to: path.join(distDir, "lib") },
{ from: path.join(rootDir, "bin"), to: path.join(distDir, "bin") },
{ from: path.join(rootDir, "package.json"), to: path.join(distDir, "package.json") },
{ from: path.join(rootDir, "Readme.md"), to: path.join(distDir, "Readme.md") }
];
async function main() {
await fs.rm(distDir, { recursive: true, force: true });
await fs.mkdir(distDir, { recursive: true });
for (const target of copyTargets) {
await copy(target.from, target.to);
}
console.log("Build written to", distDir);
}
async function copy(src, dest) {
const stat = await fs.stat(src);
if (stat.isDirectory()) {
await fs.mkdir(dest, { recursive: true });
const entries = await fs.readdir(src);
for (const entry of entries) {
await copy(path.join(src, entry), path.join(dest, entry));
}
return;
}
await fs.copyFile(src, dest);
}
main().catch(err => {
console.error("Build failed:", err);
process.exitCode = 1;
});