@rsc-labs/create-nocto-app
Version:
44 lines (34 loc) • 1.17 kB
JavaScript
const fs = require("fs");
const path = require("path");
const { execSync } = require("child_process");
const projectName = process.argv[2];
if (!projectName) {
console.error("❌ Please provide a project name:");
console.error(" npx create-nocto-app my-dashboard");
process.exit(1);
}
const root = path.resolve(process.cwd(), projectName);
const templateDir = path.join(__dirname, "template");
console.log(`🚀 Creating project in ${root}...`);
fs.mkdirSync(root, { recursive: true });
function copyRecursive(src, dest) {
const files = fs.readdirSync(src);
for (const file of files) {
const srcPath = path.join(src, file);
const destPath = path.join(dest, file);
const stat = fs.statSync(srcPath);
if (stat.isDirectory()) {
fs.mkdirSync(destPath, { recursive: true });
copyRecursive(srcPath, destPath);
} else {
fs.copyFileSync(srcPath, destPath);
}
}
}
copyRecursive(templateDir, root);
// install deps
console.log("📦 Installing dependencies...");
execSync("yarn", { cwd: root, stdio: "inherit" });
console.log("✅ Done!");
console.log(`👉 cd ${projectName} && yarn dev`);