shipcn
v0.1.0
Published
CLI to scaffold web by industry/vertical
Maintainers
Readme
shipcn
CLI to scaffold web projects by industry/vertical. Open-source, composition-first, non-destructive updates, SEO presets by page intent, provider adapters, design tokens, and full code ownership.
Yêu cầu: Node.js ≥18.
Cài đặt
git clone <repo>
cd shipcn
npm install
npm run buildChạy CLI: node dist/cli/index.js <command> hoặc link global: npm link rồi dùng shipcn <command>.
Config và Registry
- Config:
shipcn.config.jsonhoặcshipcn.config.yamltrong thư mục project. Các lệnhvalidate,generate,planchỉ đọc JSON/YAML (không đọc.ts). - Registry: Thư mục chứa manifest theo loại:
industry/,provider/,theme/,page/,section/,feature/. Mặc định lấy từ trườngregistrytrong config (đường dẫn tương đối với thư mục chứa config), hoặc./registry. Có thể ghi đè bằng-r, --registry <path>.
Tạo project mới (init)
Tạo một Next.js project với industry, provider và theme.
Chế độ không hỏi (khuyến nghị):
# Tạo project trong thư mục hiện tại (cwd)
node dist/cli/index.js init -y --industry saas --provider local --theme default -r tests/fixtures/registry
# Tạo project trong thư mục chỉ định (ví dụ: web)
node dist/cli/index.js init -d web -y --industry saas --provider local --theme default -r tests/fixtures/registryLưu ý: Cần truyền -r, --registry trỏ tới thư mục registry có sẵn (ví dụ tests/fixtures/registry trong repo này). Init tạo ra shipcn.config.ts; nếu sau đó dùng validate / generate / plan, cần thêm file shipcn.config.json cùng nội dung (và thêm "registry": "./registry" nếu bạn copy registry vào project).
Sau khi init:
cd web
npm install
npm run devMở http://localhost:3000.
Các lệnh chính
validate — Kiểm tra config và dependency
shipcn validate [-c shipcn.config.json] [-r ./registry] [--json]- Kiểm tra config hợp lệ và resolve manifest (industry, feature, page, section, provider, theme).
- Mặc định:
-c shipcn.config.json, registry lấy từ config hoặc./registry.
generate — Sinh file từ config đã resolve
shipcn generate [-c shipcn.config.json] [-r ./registry] [-o .] [--dry-run] [--json]- Đọc config + registry, resolve dependency, báo cáo/ghi file theo plan.
-olà thư mục đích (mặc định.).
add-page — Thêm trang
shipcn add-page -r <route> -p <page-type> [-c config] [-r registry] [-d dir] [--add-to-nav] [--dry-run] [--json]- Ví dụ:
shipcn add-page -r contact -p landing(route/contact, page typelanding). --add-to-nav: thử thêm vào navigation (marker-based).
add-section — Thêm section vào trang
shipcn add-section -p <page-route> -s <section-id> [--position top|bottom|before:id|after:id] [--variant id] [-c config] [-d dir] [--dry-run] [--json]- Ví dụ:
shipcn add-section -p about -s faq --position bottom.
add-feature — Thêm feature (pages, sections, providers, nav, SEO)
shipcn add-feature <feature-id> [-c config] [-r registry] [-d dir] [--dry-run]- Ví dụ:
shipcn add-feature contact,shipcn add-feature booking.
plan — Phân tích project và báo cáo gợi ý
shipcn plan [-c shipcn.config.json] [-r ./registry] [--json]- Đọc config, routes, features, page composition, SEO scaffolding; đưa ra gợi ý (missing essentials, recommended upgrades, potential issues) kèm lệnh shipcn có thể chạy tiếp.
--json: xuất báo cáo dạng JSON cho automation.
theme apply — Áp theme preset
shipcn theme apply <preset> [--preview] [--scope full|page:<route>|section:<id>] [-c config] [-r registry] [-d dir] [--json]- Áp preset (token + section variant).
--preview: chỉ xem thay đổi, không ghi file.
seo-sync — Đồng bộ SEO (metadata, structured data)
shipcn seo-sync [-c config] [-r registry] [-o outDir] [--dry-run] [--json]switch-provider — Đổi data provider
shipcn switch-provider [--provider local-static|cloud-database] [-d dir] [-c config] [--dry-run] [--json]upgrade — Thêm/đổi data provider (giữ hoặc nâng cấp)
shipcn upgrade [-d dir] [-c config] [--provider type] [--dry-run] [--json]Workflow điển hình
- Tạo project:
shipcn init -d web -y --industry saas --provider local --theme default -r tests/fixtures/registry - Chạy app:
cd web && npm install && npm run dev - Kiểm tra config (nếu dùng shipcn.config.json):
shipcn validate -c web/shipcn.config.json -r web/registry - Sinh thêm file (nếu cần):
shipcn generate -c web/shipcn.config.json -o web - Xem gợi ý cải thiện:
shipcn plan -c web/shipcn.config.json(hoặc chạy trong thư mụcwebnếu đã có config tại đó) - Thêm trang/section/feature: dùng
add-page,add-section,add-featuretheo nhu cầu.
Development
npm install
npm run build
npm run testKiểm tra nhanh với fixture:
node dist/cli/index.js validate --config tests/fixtures/shipcn.config.json -r tests/fixtures/registry
node dist/cli/index.js plan --config tests/fixtures/shipcn.config.json -r tests/fixtures/registryTham khảo thêm
- Init: specs/002-init-scaffold/quickstart.md
- Plan (phân tích & gợi ý): specs/009-plan-command/quickstart.md
- Registry & config: specs/001-registry-config-engine/quickstart.md
Đóng gói và publish (npm / pnpm)
- Cập nhật
package.json: sửaversion,repository.url(vànamethành scope nếu dùng@your-scope/shipcn). - Đăng nhập:
npm loginhoặcpnpm login. - Build và đóng gói:
npm run build(tự chạy trước khi publish nhờprepublishOnly). - Publish:
- npm:
npm publish(public) hoặcnpm publish --access restricted(scoped private). - pnpm:
pnpm publish.
- npm:
Gói publish gồm: dist/, README.md, registry/ (manifest mặc định). Người dùng sau khi cài có thể chạy init với registry đi kèm:
npx shipcn init -d myapp -y --industry saas --provider local --theme default -r ./node_modules/shipcn/registryLicense
MIT (open-source).
