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.
- package/README.md +45 -12
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,28 +1,61 @@
|
|
|
1
1
|
# create-wakii-app
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](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
|
-
|
|
9
|
-
|
|
10
|
-
pnpm create wakii-app my-app
|
|
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
|
-
|
|
|
16
|
-
| `--
|
|
17
|
-
| `--
|
|
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ỏ
|
|
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
|
-
|
|
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
|
-
|
|
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