- dist: Thư mục chứa các file build
- src: Thư mục chứa mã nguồn
- src/constants: Chứa các file chứa các hằng số
- src/middlewares: Chứa các file chứa các hàm xử lý middleware, như validate, check token, ...
- src/controllers: Chứa các file nhận request, gọi đến service để xử lý logic nghiệp vụ, trả về response
- src/services: Chứa các file chứa method gọi đến database để xử lý logic nghiệp vụ
- src/models: Chứa các file chứa các model
- src/routes: Chứa các file chứa các route
- src/utils: Chứa các file chứa các hàm tiện ích, như mã hóa, gửi email, ...
- eslint: Linter (bộ kiểm tra lỗi) chính
- prettier: Code formatter chính
- eslint-config-prettier: Cấu hình ESLint để không bị xung đột với Prettier
- eslint-plugin-prettier: Dùng thêm một số rule prettier cho eslint
- @typescript-eslint/eslint-plugin: ESLint plugin cung cấp các rule cho Typescript
- @typescript-eslint/parser: Parser cho phép ESLint kiểm tra lỗi Typescript
- ts-node: Dùng để chạy TypeScript code trực tiếp mà không cần build
- tsc-alias: Xử lý alias khi build
- tsconfig-paths: Khi setting alias import trong dự án dùng ts-node thì chúng ta cần dùng tsconfig-paths để 10. nó hiểu được paths và baseUrl trong file tsconfig.json
- rimraf: Dùng để xóa folder dist khi trước khi build
- nodemon: Dùng để tự động restart server khi có sự thay đổi trong code
npm run dev
- Có thể các bạn sẽ hỏi rằng tại sao phải build, để nguyên TypeScript thì luôn vẫn được mà. Đúng vậy nhưng khi build thì chúng ta sẽ có những lợi ích sau
- Code chạy được mà không cần cài đặt TypeScript
- Chạy nhanh hơn vì đã được biên dịch rồi
- Có thể minify code để giảm dung lượng
- Code chạy được trên những mội trường không hỗ trợ TypeScript
- Để build thì chạy câu lệnh sau
npm run build
npm run start
npm run lint
npm run lint:fix
npm run prettier
- Vì đây là dự án chạy với Typescript nên khi cài đặt bất cứ một thư viện này chúng ta nên xem thư viện đó có hỗ trợ TypeScript không nhé. Có một số thư viện ở npm hỗ trợ TypeScript sẵn, có một số thì chúng ta phải cài thêm bộ TypeScript của chúng qua @types/ten-thu-vien
- Ví dụ như express thì chúng ta cài như sau
npm i express npm i @types/express -D
mongodb+srv://unicourse:[email protected]/unicourse_db