Giao diện
CLI create-tasco-app
@tasco/cli có một lệnh, create-tasco-app, dựng dự án Nuxt mới đã extends layer. Hướng dẫn từng bước: Tạo app mới.
Cú pháp
bash
npx @tasco/cli <tên-dự-án> [--pm <pnpm|npm|yarn>]pnpm dlx @tasco/cli <tên-dự-án> cho kết quả như nhau. Cần .npmrc trỏ registry @tasco trước — xem Chuẩn bị môi trường.
| Tham số | Bắt buộc | Mặc định | Ý nghĩa |
|---|---|---|---|
<tên-dự-án> | Không | Hỏi trong terminal | Tên thư mục sẽ tạo, đồng thời là name trong package.json, tên image Docker và tên project compose |
--pm <tên> | Không | pnpm | Chỉ đổi lệnh in ở phần "Các bước tiếp theo"; nội dung dự án giữ nguyên |
Tên dự án được dùng nguyên văn — CLI không kiểm tra. Đặt chữ thường, nối bằng gạch ngang (tasco-orders): tên package npm và tên image Docker đều không nhận chữ hoa hay dấu cách.
Kết quả
| Tình huống | Mã thoát | Thông báo |
|---|---|---|
| Thành công | 0 | ✔ Đã tạo project Tasco tại ./<tên> kèm các bước tiếp theo |
| Không nhập tên | 1 | ✖ Thiếu tên project. |
| Thư mục đã tồn tại và có file | 1 | ✖ Thư mục "<tên>" đã tồn tại và không rỗng. |
Thư mục đã tồn tại nhưng rỗng thì CLI dùng luôn.
Cách sinh file
Chép toàn bộ
templates/appcủa package vào thư mục mới.Đổi tên file ẩn (npm không đóng gói file bắt đầu bằng dấu chấm):
Trong template Sau khi sinh _gitignore.gitignore_npmrc.npmrc_env.example.env.example_dockerignore.dockerignoreThay placeholder trong mọi file:
Placeholder Giá trị __APP_NAME__Tên dự án __TASCO_VERSION__^+ version của chính CLI đang chạy, vd^2.0.0; không đọc được thìlatest
Dự án sinh ra
| File | Nội dung chính |
|---|---|
package.json | @tasco/nuxt-layer-base, @tasco/ui, @tasco/eslint-config, @tasco/tsconfig cùng version của CLI; engines.node ^22.19.0 || ^24.11.0 || >=26.0.0; packageManager ghim cùng bản pnpm của core |
nuxt.config.ts | extends: ['@tasco/nuxt-layer-base'] |
app/app.config.ts | appTitle, footerText, topNav, nav mẫu dùng icon @tabler/icons-vue |
app/pages/index.vue | Trang chủ công khai (auth: false) có nút đăng nhập/đăng xuất |
app/pages/orders/index.vue | Trang danh sách mẫu chạy offline: CPageHeader, useTable, CTable, CStatus, CTag, nút theo quyền |
.env.example | Mọi biến của layer kèm chú thích |
.npmrc | Scope @tasco trỏ group endpoint, token đọc từ ${NPM_TOKEN} |
pnpm-workspace.yaml | allowBuilds cho pnpm 11+ |
eslint.config.mjs, tsconfig.json | Preset vue của @tasco/eslint-config; tsconfig kế thừa .nuxt/tsconfig.json |
Dockerfile, .dockerignore, docker-compose*.yml, scripts/deploy-prod.sh | Build và chạy image — xem CI/CD & Deploy |
.gitlab-ci.yml | check → build → deploy |
CLAUDE.md, .mcp.json, .claude/settings.json | Ngữ cảnh và guardrail cho AI tooling — xem AI tooling cho dev |
README.md | Lệnh chạy, link tài liệu /v2/ |
Lệnh trong dự án
| Lệnh | Việc |
|---|---|
pnpm dev | nuxi dev |
pnpm build | nuxi build — output ở .output/ |
pnpm preview | node .output/server/index.mjs |
pnpm typecheck | nuxi prepare && vue-tsc --noEmit |
pnpm lint | eslint . |
pnpm check | lint rồi typecheck — Docker stage check và job CI check chạy lệnh này |
Nâng cấp dự án đã tạo
CLI chỉ chạy một lần lúc tạo. Nâng framework thì đổi version @tasco/* trong package.json rồi pnpm install; file sinh từ template (CI, Dockerfile, .npmrc) không tự cập nhật — đối chiếu với template của bản mới khi changelog nhắc tới. Xem Nâng cấp phiên bản và Changelog.