UNPKG

setup-node-boilerplate

Version:

A CLI tool to generate a standard Node.js + Express project structure instantly.

109 lines (86 loc) • 2.09 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const projectName = process.argv[2]; if (!projectName) { console.error('āŒ Please provide a project name: setup-node-boilerplate my-app'); process.exit(1); } const root = path.join(process.cwd(), projectName); const folders = [ 'config', 'controllers', 'models', 'routes', 'middleware', 'utils', 'logs', 'public' ]; console.log(`šŸš€ Creating Node.js boilerplate at ${root}`); // 1ļøāƒ£ Make root fs.mkdirSync(root, { recursive: true }); // 2ļøāƒ£ Make folders folders.forEach(folder => { fs.mkdirSync(path.join(root, folder), { recursive: true }); }); // 3ļøāƒ£ Create .gitignore with content fs.writeFileSync( path.join(root, '.gitignore'), `node_modules/ .env logs/ `); // 4ļøāƒ£ Create .env with content fs.writeFileSync( path.join(root, '.env'), `PORT=5000 `); // 5ļøāƒ£ Create server.js with content fs.writeFileSync( path.join(root, 'server.js'), `const express = require('express'); const dotenv = require('dotenv').config(); const cors = require('cors'); const app = express(); app.use(cors()); app.use(express.json()); app.get('/', (req, res) => { res.send('āœ… Server is running!'); }); const PORT = process.env.PORT || 5000; app.listen(PORT, () => console.log(\`šŸš€ Server running on http://localhost:\${PORT}\`)); `); // 6ļøāƒ£ Create package.json with content fs.writeFileSync( path.join(root, 'package.json'), `{ "name": "${projectName}", "version": "1.0.0", "main": "server.js", "scripts": { "start": "node server.js", "dev": "nodemon server.js" }, "dependencies": { "express": "^4.18.2", "dotenv": "^16.3.1", "cors": "^2.8.5" }, "devDependencies": { "nodemon": "^3.0.0" } } `); // 7ļøāƒ£ Create README.md with content fs.writeFileSync( path.join(root, 'README.md'), `# ${projectName} āœ… Ready Node.js boilerplate with Express server. ## How to run 1. npm install 2. npm run dev 3. Visit: http://localhost:5000 ` ); console.log('āœ… Done! Boilerplate generated successfully!');