create-node-app-starter
Version:
CLI to create a Node.js starter template
46 lines (35 loc) ⢠1.3 kB
JavaScript
const fs = require("fs");
const path = require("path");
const { execSync } = require("child_process");
const projectName = process.argv[2];
if (!projectName) {
console.log("ā Please provide a project name:");
console.log(" npx create-node-app-starter my-app");
process.exit(1);
}
const targetPath = path.join(process.cwd(), projectName);
const templatePath = path.join(__dirname, "app");
// Create project folder
fs.mkdirSync(targetPath, { recursive: true });
// Copy template folder
function copyFolder(src, dest) {
fs.mkdirSync(dest, { recursive: true });
fs.readdirSync(src).forEach((file) => {
const srcFile = path.join(src, file);
const destFile = path.join(dest, file);
if (fs.lstatSync(srcFile).isDirectory()) {
copyFolder(srcFile, destFile);
} else {
fs.copyFileSync(srcFile, destFile);
}
});
}
copyFolder(templatePath, targetPath);
// Install dependencies
console.log("š¦ Installing dependencies...");
execSync(`cd ${projectName} && npm install`, { stdio: "inherit" });
console.log("\nš Node app setup complete!");
console.log(`š cd ${projectName}`);
console.log("š Create a .env file with PORT and MONGO_URI (see README)");
console.log("š npm start");