[Tool] Tự động hóa việc tạo project Node.js "chuẩn chỉnh" chỉ trong 1 phút với nodejs-quickstart-structure
Chào anh em Viblo,
Là một Node.js developer, chắc hẳn anh em ai cũng từng trải qua cảm giác "ngán ngẩm" mỗi khi bắt đầu một project mới. Cảm giác phải đi copy-paste lại cấu trúc thư mục từ dự án cũ, rồi hì hục setup lại ESLint, Prettier, cấu hình Docker, kết nối Database, dựng base Controller/Service... Nó không khó, nhưng nó tốn thời gian và rất dễ mắc lỗi lặt vặt.
Để giải quyết vấn đề "boilerplate fatigue" này, mình đã build một chiếc CLI tool tên là nodejs-quickstart-structure. Mục tiêu đơn giản thôi: Gõ 1 lệnh, có ngay một project Node.js xịn xò, chuẩn industry-standard để code logic luôn.
Hôm nay mình xin giới thiệu với anh em về tool này nhé.

Tại sao lại cần nodejs-quickstart-structure?
Hiện tại có khá nhiều boilerplate generator ngoài kia, nhưng mình thấy đa số thường:
- Quá đơn giản (chỉ có Express + Mongoose cơ bản).
- Hoặc quá phức tạp/opinionated (ép dùng framework lạ).
- Ít hỗ trợ Clean Architecture một cách bài bản.
nodejs-quickstart-structure được thiết kế để cân bằng giữa sự linh hoạt và tính chuẩn mực.
Các tính năng nổi bật (Features)
- Đa kiến trúc (Architecture Agnostic):
- Support MVC: Cho các dự án vừa và nhỏ, cần phát triển nhanh.
- Support Clean Architecture: Cho các dự án enterprise, microservices, cần độ tách biệt cao (Dependency Rule).
- Support tận răng JS & TS: Bạn thích viết JavaScript thuần hay TypeScript chặt chẽ đều có option.
- Database đa dạng: Tự động cấu hình kết nối cho MongoDB, MySQL, hoặc PostgreSQL.
- Microservices Ready: Tùy chọn tích hợp sẵn Kafka cho giao tiếp event-driven.
- Caching: Tùy chọn tích hợp Redis để cache dữ liệu.
- DevOps Friendly:
- Tự sinh
docker-compose.ymlđầy đủ cho DB, Redis, Kafka, Zookeeper. - Tự sinh Dockerfile tối ưu (Multi-stage build).
- Có sẵn template CI/CD cho GitHub Actions và Jenkins.
- Tự sinh
- Chất lượng code: Tích hợp sẵn
ESLint,Prettier,Husky,Lint-stagedđể đảm bảo code sạch từ đầu. - Logging chuẩn: Dùng
Winston+Morganđể log request/error chuyên nghiệp.
Cài đặt và Sử dụng
Cực kỳ đơn giản, tool đã được publish lên npm.
Cài đặt
npm install -g nodejs-quickstart-structure
Sử dụng
Di chuyển đến thư mục bạn muốn tạo project và chạy:
nodejs-quickstart init
Lúc này, CLI sẽ hiện ra một loạt các câu hỏi tương tác để bạn chọn cấu hình mong muốn:
- Tên Project:
my-awesome-app - Ngôn ngữ:
TypeScript/JavaScript - Kiến trúc:
Clean Architecture/MVC - Database:
PostgreSQL/MySQL/MongoDB - Caching:
Redis/None - Giao tiếp:
REST APIs/Kafka
Và... BÙM! 🚀
Chỉ sau vài giây, bạn sẽ có một thư mục project với đầy đủ cấu trúc:
my-awesome-app/
├── src/
│ ├── config/ # Environment variables, db config
│ ├── controllers/ # (MVC) hoặc interfaces/controllers (Clean Arch)
│ ├── routes/ # (MVC) hoặc interfaces/routes (Clean Arch)
│ ├── usecases/ # (Clean Arch) Application Business Rules
│ ├── domain/ # (Clean Arch) Enterprise Business Rules
│ ├── infrastructure/ # (Clean Arch) Database repositories, external services
│ └── index.ts # Entry point
├── docker-compose.yml # Đã config sẵn hết port, services
├── .eslintrc.json
├── package.json
└── ...
Demo một chút về khả năng tùy biến
Tool này hỗ trợ tới 112 tổ hợp cấu hình khác nhau (đã được test kỹ càng trên cả Windows và Linux).
Ví dụ, nếu bạn chọn TypeScript + Clean Architecture + PostgreSQL + Kafka + Redis, tool sẽ:
- Tạo cấu trúc Clean Arch (Entities, Use Cases, Interfaces, Frameworks).
- Cài driver
pg. - Cấu hình
kafkajsđể bắn message. - Cấu hình
redisclient để cache. - Tạo
utilsvới Migration scripts (nếu cần). - Viết sẵn code mẫu CRUD User để bạn tham khảo cách luồng dữ liệu chạy.
Đóng góp (Contribution)
Tool này là Open Source (License ISC). Mình rất hoan nghênh anh em vào vọc vạch, report bug hoặc đóng góp thêm feature mới (ví dụ support thêm RabbitMQ, OAuth2.0 ...).
- GitHub: https://github.com/paudang/nodejs-quickstart-structure
- NPM: https://www.npmjs.com/package/nodejs-quickstart-structure
Nếu thấy hữu ích, đừng tiếc 1 ⭐️ trên GitHub để mình có động lực update tiếp nhé!
All rights reserved