create-wakii-app 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +45 -12
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,28 +1,61 @@
1
1
  # create-wakii-app
2
2
 
3
- CLI scaffold app React + **@wakii/ui-kit** — `pnpm create wakii-app my-app` (spec chung: `docs/` khi publish — hiện `/tmp/starter-spec.md`).
3
+ [![npm](https://img.shields.io/npm/v/create-wakii-app?logo=npm&label=create-wakii-app)](https://www.npmjs.com/package/create-wakii-app)
4
+
5
+ CLI scaffold app React + [@wakii/ui-kit](https://www.npmjs.com/package/@wakii/ui-kit) — CRA-style: interactive prompts, non-interactive flags. **Published [`create-wakii-app@0.1.0`](https://www.npmjs.com/package/create-wakii-app) trên npmjs.org.**
4
6
 
5
7
  ## Dùng
6
8
 
7
9
  ```bash
8
- pnpm create wakii-app my-app # interactive (CRA-style)
9
- pnpm create wakii-app my-app --yes # toàn default (ts + router, 0 extra)
10
- pnpm create wakii-app my-app --lang js --no-router --extras chart,carousel --skip-install
10
+ npm create wakii-app@latest my-app # chính thức
11
+ npx create-wakii-app my-app # npx
12
+ pnpm create wakii-app my-app # pnpm
13
+ yarn create wakii-app my-app # yarn
14
+ ```
15
+
16
+ Interactive flow — thiếu gì prompt nấy (tên project → react-router? → extras multiselect → confirm → scaffold), xong in next-steps:
17
+
18
+ ```
19
+ cd my-app
20
+ pnpm install
21
+ pnpm dev
22
+ ```
23
+
24
+ Non-interactive:
25
+
26
+ ```bash
27
+ pnpm create wakii-app my-app --yes # toàn default (ts + router, 0 extra)
28
+ pnpm create wakii-app my-app --yes --extras chart # default + demo chart route
29
+ pnpm create wakii-app ~/code/my-app --lang js --skip-install # path + JavaScript, bỏ gợi ý install
11
30
  ```
12
31
 
32
+ ## Flags
33
+
13
34
  | Flag | Ý nghĩa | Default |
14
35
  |---|---|---|
15
- | `--lang ts\|js` | TypeScript / JavaScript variant | `ts` |
16
- | `--router` / `--no-router` | react-router v7 | có |
17
- | `--extras a,b` | demo subpath: `chart · carousel · schedule · editor` | none |
36
+ | `[appName]` (positional) | Tên **hoặc đường dẫn**: `my-app` → `./my-app`; `/a/b/my-app` → đích `/a/b/my-app`. Package name luôn lấy **basename** (path không lọt vào package.json) | prompt (`my-wakii-app`) |
37
+ | `--lang ts\|js` | TypeScript / JavaScript (nhận cả `--lang=js`) | `ts` |
38
+ | `--router` / `--no-router` | react-router v7 (prompt khi thiếu — trừ khi `--yes`) | có |
39
+ | `--extras <list>` | demo subpath: `chart · carousel · schedule · editor` (nhận cả `--extras=a`). Extras **kéo theo router** (demo subpath là route riêng) | none |
18
40
  | `--yes` | bỏ prompt, lấy default | — |
19
- | `--skip-install` | bỏ gợi ý `pnpm install` ở next-steps | — |
41
+ | `--skip-install` | bỏ `pnpm install` ở next-steps | — |
42
+ | `-h`, `--help` | in hướng dẫn | — |
43
+
44
+ Lỗi có chủ đích: `--no-router` + `--extras` mâu thuẫn → CLI báo rõ và thoát (bỏ một trong hai). CLI **không tự install** — chỉ in next-steps (`cd` theo đúng đích đã tạo, kể cả khi dùng path).
45
+
46
+ ## Template chứa gì
47
+
48
+ Base (ts/js) — app demo dogfooding **`@wakii/ui-kit` ^0.5.0** (pin 0.5.0: bản exports dist đầu tiên):
49
+
50
+ - **Dark toggle hoạt động thật** — `useAppTheme` (src/theme) persist `localStorage` + đặt `data-bp-theme` trên `<html>`; mọi component kit cascade theo, không re-render.
51
+ - **Demo components**: hero wash + Tag/Title/Text + 3 Button · Table 3 cột (Badge status) · Alert ×4 · CountUp Statistic · Card "What's inside" (links Storybook + npm).
52
+ - **Tokens-first**: một file styles.css (tokens + base từ kit + Tailwind v4 + `@source` kit) — 0 hex trong app.
20
53
 
21
- CLI KHÔNG tự install — chỉ in next-steps (`cd`, `pnpm install`, `pnpm dev`).
54
+ Router (default CÓ, react-router v7): route `/` demo + `/about` giới thiệu kit (NavLink). Extras: mỗi extra thêm 1 route demo dùng đúng subpath (`@wakii/ui-kit/chart`, `./carousel`, `./schedule`, `./editor`) + peer dep tương ứng ghi vào package.json.
22
55
 
23
- ## Kiến trúc
56
+ ## Kiến trúc (repo)
24
57
 
25
- - `src/options.ts` — parse flags tự viết (0 dep parser) + defaults + validate
58
+ - `src/options.ts` — parse flags tự viết (0 dep parser) + defaults + validate (`--no-router` × `--extras` throw)
26
59
  - `src/scaffold.ts` — copy đệ quy template → render placeholder `{{appName}}` (binary bỏ qua) → áp overlays `router`/`extras/<name>` → merge deps vào package.json
27
60
  - `src/index.ts` — flow prompt `@clack/prompts` + log + next-steps (wire UI thôi)
28
61
 
@@ -35,4 +68,4 @@ pnpm --filter create-wakii-app typecheck
35
68
  pnpm --filter create-wakii-app test # fixture templates giả trong tmp — không network
36
69
  ```
37
70
 
38
- Build/publish wiring (bin → dist, files field gộp templates) là bước release — xem RELEASE khi publish.
71
+ Publish lên npmjs: `./scripts/publish-npm.sh` — build (tsup) rồi bundle `dist` + **`starter-templates/`** (vite-ts + vite-js) vào package (`files` field — npm không nhận path `../`), set `publishConfig` public, publish bằng `NPM_TOKEN` (env) hoặc `_authToken` sẵn trong `~/.npmrc`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-wakii-app",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "type": "module",
5
5
  "description": "CLI scaffold app React + @wakii/ui-kit — pnpm create wakii-app my-app (spec: /tmp/starter-spec.md → docs khi publish)",
6
6
  "bin": {