diff --git a/packages/create/package.json b/packages/create/package.json index 7869850..b5751e0 100644 --- a/packages/create/package.json +++ b/packages/create/package.json @@ -11,6 +11,7 @@ "dist" ], "scripts": { + "prepublishOnly": "pnpm run build", "build": "tsup && node ./scripts/write-examples-json.mjs", "dev": "tsup --watch", "check-types": "tsc --noEmit", diff --git a/packages/create/scripts/write-examples-json.mjs b/packages/create/scripts/write-examples-json.mjs new file mode 100644 index 0000000..d878170 --- /dev/null +++ b/packages/create/scripts/write-examples-json.mjs @@ -0,0 +1,20 @@ +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const repoRoot = path.resolve(__dirname, "../../.."); +const appsDir = path.join(repoRoot, "apps"); +const outFile = path.resolve(__dirname, "../dist/examples.json"); + +const exclude = new Set(["docs"]); +const names = fs + .readdirSync(appsDir, { withFileTypes: true }) + .filter((d) => d.isDirectory()) + .map((d) => d.name) + .filter((name) => !exclude.has(name)) + .sort(); + +fs.mkdirSync(path.dirname(outFile), { recursive: true }); +fs.writeFileSync(outFile, JSON.stringify({ examples: names }, null, 2)); +console.log(`write-examples-json: wrote ${outFile}`, names); diff --git a/packages/create/src/cli.ts b/packages/create/src/cli.ts new file mode 100644 index 0000000..b0bb886 --- /dev/null +++ b/packages/create/src/cli.ts @@ -0,0 +1,2 @@ +#!/usr/bin/env node +console.log("create-antd-admin stub"); diff --git a/packages/create/tsup.config.ts b/packages/create/tsup.config.ts new file mode 100644 index 0000000..6302dc3 --- /dev/null +++ b/packages/create/tsup.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: ["src/cli.ts"], + format: ["esm"], + platform: "node", + target: "node20", + outDir: "dist", + clean: true, + banner: { + js: "#!/usr/bin/env node", + }, + shims: false, +});