@ywal123456/jskim 0.5.0 → 0.5.2
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 +25 -12
- package/docs/JSKim_User_Guide_v0.5.2.pdf +0 -0
- package/docs/create-jskim.md +44 -12
- package/docs/user-guide/01-introduction.md +98 -0
- package/docs/user-guide/02-getting-started.md +162 -0
- package/docs/user-guide/03-project-structure.md +216 -0
- package/docs/user-guide/04-basic-workflow.md +186 -0
- package/docs/user-guide/05-cli-reference.md +218 -0
- package/docs/user-guide/06-configuration.md +357 -0
- package/docs/user-guide/07-files-pipeline.md +278 -0
- package/docs/user-guide/08-nunjucks.md +300 -0
- package/docs/user-guide/09-development-features.md +228 -0
- package/docs/user-guide/10-errors-and-troubleshooting.md +420 -0
- package/docs/user-guide/11-dashboard-example.md +188 -0
- package/docs/user-guide/12-crud-example.md +203 -0
- package/docs/user-guide/13-wizard-example.md +196 -0
- package/docs/user-guide/14-limitations.md +186 -0
- package/docs/user-guide/README.md +99 -0
- package/docs/user-guide-pdf-build.md +128 -0
- package/package.json +8 -1
- package/scripts/docs/build-user-guide-pdf.js +49 -0
- package/scripts/docs/user-guide-pdf-lib.js +825 -0
- package/scripts/docs/user-guide-print.css +286 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# CRUD例
|
|
2
|
+
|
|
3
|
+
この章では、公式 CRUD sample(商品管理の 6 画面)の構造と、静的な画面間 navigation を説明します。
|
|
4
|
+
|
|
5
|
+
> **Warning**
|
|
6
|
+
>
|
|
7
|
+
> これは静的 UI sample です。
|
|
8
|
+
> JSKim が実際の登録・更新・削除機能を提供するわけではありません。
|
|
9
|
+
|
|
10
|
+
> **Note**
|
|
11
|
+
>
|
|
12
|
+
> 以下のコードは核心部分だけの抜粋です。
|
|
13
|
+
> 全体の source は各 link から確認できます。
|
|
14
|
+
|
|
15
|
+
## Sample の目的
|
|
16
|
+
|
|
17
|
+
- 一覧 / 詳細 / 登録 / 編集 / 削除確認 / 完了という一般的な画面構成を示す
|
|
18
|
+
- page 単位の静的 HTML として確認できる
|
|
19
|
+
- 実際の登録・修正・削除は行わない
|
|
20
|
+
- 入力値の保存や画面間引き渡しはない
|
|
21
|
+
|
|
22
|
+
代表 source:
|
|
23
|
+
|
|
24
|
+
- [商品一覧](../../src/sample/pages/crud/index.html.njk)
|
|
25
|
+
|
|
26
|
+
## 関連 file
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
pages/crud/
|
|
30
|
+
├─ index.html.njk
|
|
31
|
+
├─ detail.html.njk
|
|
32
|
+
├─ create.html.njk
|
|
33
|
+
├─ edit.html.njk
|
|
34
|
+
├─ delete.html.njk
|
|
35
|
+
├─ complete.html.njk
|
|
36
|
+
└─ assets/css/crud.css
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
各 page:
|
|
40
|
+
|
|
41
|
+
- [一覧](../../src/sample/pages/crud/index.html.njk)
|
|
42
|
+
- [詳細](../../src/sample/pages/crud/detail.html.njk)
|
|
43
|
+
- [登録](../../src/sample/pages/crud/create.html.njk)
|
|
44
|
+
- [編集](../../src/sample/pages/crud/edit.html.njk)
|
|
45
|
+
- [削除確認](../../src/sample/pages/crud/delete.html.njk)
|
|
46
|
+
- [完了](../../src/sample/pages/crud/complete.html.njk)
|
|
47
|
+
|
|
48
|
+
共通 layout / component の詳細は [Dashboard例](11-dashboard-example.md) と [Nunjucksの使い方](08-nunjucks.md) を参照してください。
|
|
49
|
+
|
|
50
|
+
## 画面の移動
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
商品一覧
|
|
54
|
+
├─ 商品詳細
|
|
55
|
+
│ ├─ 商品編集 ──→ 処理完了
|
|
56
|
+
│ └─ 商品削除確認 ──→ 処理完了
|
|
57
|
+
└─ 商品登録 ──→ 処理完了
|
|
58
|
+
|
|
59
|
+
処理完了
|
|
60
|
+
├─ 商品一覧へ戻る
|
|
61
|
+
└─ Portal へ戻る
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
主な戻り先:
|
|
65
|
+
|
|
66
|
+
| 画面 | 戻るリンク |
|
|
67
|
+
| ---- | ---------- |
|
|
68
|
+
| 詳細 | 一覧 |
|
|
69
|
+
| 登録 | 一覧 |
|
|
70
|
+
| 編集 | 詳細 |
|
|
71
|
+
| 削除確認 | 詳細(削除せずに戻る) |
|
|
72
|
+
| 完了 | 一覧 / Portal |
|
|
73
|
+
|
|
74
|
+
## 商品一覧
|
|
75
|
+
|
|
76
|
+
template 内の `products` 配列を `for` で表示します。
|
|
77
|
+
|
|
78
|
+
```nunjucks
|
|
79
|
+
{% for product in products %}
|
|
80
|
+
<tr>
|
|
81
|
+
<td>{{ product.id }}</td>
|
|
82
|
+
<td><a href="detail.html">{{ product.name }}</a></td>
|
|
83
|
+
...
|
|
84
|
+
</tr>
|
|
85
|
+
{% endfor %}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
- table に caption / `scope="col"` がある
|
|
89
|
+
- 商品名と「詳細」はどちらも `detail.html` へ
|
|
90
|
+
- 「商品を登録する」は `create.html` へ
|
|
91
|
+
- status は `if` で badge を切替
|
|
92
|
+
|
|
93
|
+
## 商品詳細
|
|
94
|
+
|
|
95
|
+
単一の `product` object を page 内で定義し、表示します。
|
|
96
|
+
|
|
97
|
+
```nunjucks
|
|
98
|
+
{% set product = {
|
|
99
|
+
id: "P-001",
|
|
100
|
+
name: "サンプル商品A",
|
|
101
|
+
...
|
|
102
|
+
} %}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
- URL パラメータに応じた動的な取得ではない
|
|
106
|
+
- 編集 / 削除 / 一覧への navigation がある
|
|
107
|
+
|
|
108
|
+
## 商品登録
|
|
109
|
+
|
|
110
|
+
form の見た目だけを持つ画面です。
|
|
111
|
+
|
|
112
|
+
| 項目 | 属性の例 |
|
|
113
|
+
| ---- | -------- |
|
|
114
|
+
| 商品ID / 商品名 / カテゴリ / 価格 | `readonly` の text input |
|
|
115
|
+
| ステータス | `disabled` の select |
|
|
116
|
+
| 商品説明 | `readonly` の textarea |
|
|
117
|
+
|
|
118
|
+
- 実際の submit はない
|
|
119
|
+
- 「登録する」は `complete.html` への静的リンク
|
|
120
|
+
- validation も入力保存もない
|
|
121
|
+
|
|
122
|
+
## 商品編集
|
|
123
|
+
|
|
124
|
+
登録画面に近い構成で、静的な初期値が入っています。
|
|
125
|
+
|
|
126
|
+
- 詳細画面の固定商品を編集する体裁
|
|
127
|
+
- 「更新する」も `complete.html` への静的リンク
|
|
128
|
+
- 実際の更新処理はない
|
|
129
|
+
|
|
130
|
+
> **Note**
|
|
131
|
+
>
|
|
132
|
+
> 登録と編集で form を macro / include にまとめていません。
|
|
133
|
+
> 静的 UI sample として、画面ごとの構成を追いやすくするためです。
|
|
134
|
+
|
|
135
|
+
## 商品削除確認
|
|
136
|
+
|
|
137
|
+
削除対象の静的情報と注意文を示します。
|
|
138
|
+
|
|
139
|
+
- heading / 本文で「削除は実行されない」ことを明示
|
|
140
|
+
- 「削除する」は色付きボタンだが、実際の削除は行わず `complete.html` へ移動
|
|
141
|
+
|
|
142
|
+
## 処理完了
|
|
143
|
+
|
|
144
|
+
登録・更新・削除の流れから共通で使う静的な完了 page です。
|
|
145
|
+
|
|
146
|
+
- どの操作が成功したかを判定しない
|
|
147
|
+
- 一覧または Portal へ戻れる
|
|
148
|
+
|
|
149
|
+
## Nunjucks 文法 mapping
|
|
150
|
+
|
|
151
|
+
| 文法 | file | 用途 |
|
|
152
|
+
| ---- | ---- | ---- |
|
|
153
|
+
| `set` array | `index.html.njk` | 商品一覧 |
|
|
154
|
+
| `for` | `index.html.njk` | table row |
|
|
155
|
+
| `if` | `index.html.njk` | status badge |
|
|
156
|
+
| `set` object | `detail.html.njk` など | 静的な商品 |
|
|
157
|
+
| variable output | 複数 page | 商品情報の表示 |
|
|
158
|
+
|
|
159
|
+
基礎文法は [Nunjucksの使い方](08-nunjucks.md) を参照してください。
|
|
160
|
+
|
|
161
|
+
## CRUD CSS
|
|
162
|
+
|
|
163
|
+
| 項目 | パス |
|
|
164
|
+
| ---- | ---- |
|
|
165
|
+
| source | [`pages/crud/assets/css/crud.css`](../../src/sample/pages/crud/assets/css/crud.css) |
|
|
166
|
+
| output | `dist/sample/crud/assets/css/crud.css` |
|
|
167
|
+
| HTML | `assets/css/crud.css` |
|
|
168
|
+
|
|
169
|
+
共通の見た目は `common.css`、CRUD 画面群の差分は `crud.css` が担当します。
|
|
170
|
+
|
|
171
|
+
## 新しい CRUD 画面への拡張
|
|
172
|
+
|
|
173
|
+
例:
|
|
174
|
+
|
|
175
|
+
- 一覧の column を増やす
|
|
176
|
+
- 詳細の項目を増やす
|
|
177
|
+
- 確認 page を分ける
|
|
178
|
+
- 完了 page を操作ごとに分ける
|
|
179
|
+
- CRUD 専用 CSS を拡張する
|
|
180
|
+
|
|
181
|
+
実際の backend 連携は JSKim の外(application 側)の作業です。
|
|
182
|
+
|
|
183
|
+
## Backend とつなぐ場合
|
|
184
|
+
|
|
185
|
+
概念だけ示します。
|
|
186
|
+
|
|
187
|
+
- JSKim の build 結果は静的ファイル
|
|
188
|
+
- API を呼ぶ JavaScript は利用者が別途書く
|
|
189
|
+
- server-side でデータを注入する framework ではない
|
|
190
|
+
- database / 認証 / 認可も JSKim の範囲外
|
|
191
|
+
|
|
192
|
+
特定の backend framework の実装例は、このガイドでは扱いません。
|
|
193
|
+
|
|
194
|
+
## Sample の限界
|
|
195
|
+
|
|
196
|
+
- 実際の CRUD 処理はない
|
|
197
|
+
- form submit はない
|
|
198
|
+
- validation はない
|
|
199
|
+
- persistence はない
|
|
200
|
+
- URL パラメータ別の詳細表示はない
|
|
201
|
+
- 外部 mock data file はない
|
|
202
|
+
|
|
203
|
+
詳細は [制限事項](14-limitations.md) を参照してください。
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# Wizard例
|
|
2
|
+
|
|
3
|
+
この章では、公式 Wizard sample(3 ステップ)と共通の step component を説明します。
|
|
4
|
+
|
|
5
|
+
> **Warning**
|
|
6
|
+
>
|
|
7
|
+
> 入力内容の保存、画面間の引き継ぎ、送信処理はありません。
|
|
8
|
+
> 確認画面の値も入力画面から渡されたものではありません。
|
|
9
|
+
|
|
10
|
+
> **Note**
|
|
11
|
+
>
|
|
12
|
+
> 以下のコードは核心部分だけの抜粋です。
|
|
13
|
+
> 全体の source は各 link から確認できます。
|
|
14
|
+
|
|
15
|
+
## Sample の目的
|
|
16
|
+
|
|
17
|
+
- 情報入力 → 入力内容確認 → 完了という段階型の画面構成を示す
|
|
18
|
+
- layout / component / page-local CSS の使い方を確認する
|
|
19
|
+
- 実際の入力値の受け渡しや保存はしない
|
|
20
|
+
|
|
21
|
+
代表 source:
|
|
22
|
+
|
|
23
|
+
- [情報入力](../../src/sample/pages/wizard/input.html.njk)
|
|
24
|
+
|
|
25
|
+
## 関連 file
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
components/wizard-steps.njk
|
|
29
|
+
|
|
30
|
+
pages/wizard/
|
|
31
|
+
├─ input.html.njk
|
|
32
|
+
├─ confirm.html.njk
|
|
33
|
+
├─ complete.html.njk
|
|
34
|
+
└─ assets/css/wizard.css
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
- [`wizard-steps.njk`](../../src/sample/components/wizard-steps.njk)
|
|
38
|
+
- [入力](../../src/sample/pages/wizard/input.html.njk)
|
|
39
|
+
- [確認](../../src/sample/pages/wizard/confirm.html.njk)
|
|
40
|
+
- [完了](../../src/sample/pages/wizard/complete.html.njk)
|
|
41
|
+
|
|
42
|
+
共通 layout は [Dashboard例](11-dashboard-example.md) と同じです。
|
|
43
|
+
|
|
44
|
+
## 画面の移動
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
情報入力
|
|
48
|
+
↓
|
|
49
|
+
入力内容確認
|
|
50
|
+
↓
|
|
51
|
+
完了
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
戻り:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
入力内容確認 → 情報入力
|
|
58
|
+
完了 → 情報入力 / Portal
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
「送信する」も完了画面への静的な移動です。
|
|
62
|
+
|
|
63
|
+
## currentStep
|
|
64
|
+
|
|
65
|
+
各 page が静的にステップ番号を持ちます。
|
|
66
|
+
|
|
67
|
+
| page | 値 |
|
|
68
|
+
| ---- | -- |
|
|
69
|
+
| 情報入力 | `{% set currentStep = 1 %}` |
|
|
70
|
+
| 入力内容確認 | `{% set currentStep = 2 %}` |
|
|
71
|
+
| 完了 | `{% set currentStep = 3 %}` |
|
|
72
|
+
|
|
73
|
+
- browser / session の application state ではない
|
|
74
|
+
- `wizard-steps` component の表示切替のための値
|
|
75
|
+
|
|
76
|
+
## wizard-steps component
|
|
77
|
+
|
|
78
|
+
```nunjucks
|
|
79
|
+
<li
|
|
80
|
+
class="wizard-steps__item{% if currentStep == 1 %} is-current{% elif currentStep > 1 %} is-complete{% endif %}"
|
|
81
|
+
{% if currentStep == 1 %}aria-current="step"{% endif %}
|
|
82
|
+
>
|
|
83
|
+
<span class="wizard-steps__number">1</span>
|
|
84
|
+
<span class="wizard-steps__label">情報入力</span>
|
|
85
|
+
...
|
|
86
|
+
</li>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
- ステップは 3 つ
|
|
90
|
+
- 現在 / 完了 / 未実施を class とテキストで表現
|
|
91
|
+
- 現在ステップには `aria-current="step"`
|
|
92
|
+
- component 自体は直接 output されない
|
|
93
|
+
|
|
94
|
+
## 情報入力
|
|
95
|
+
|
|
96
|
+
見た目だけの入力欄です。
|
|
97
|
+
|
|
98
|
+
| 項目 | name / 属性 |
|
|
99
|
+
| ---- | ----------- |
|
|
100
|
+
| 氏名 | `name` / `readonly` |
|
|
101
|
+
| メールアドレス | `email` / `readonly` |
|
|
102
|
+
| 電話番号 | `phone` / `readonly` |
|
|
103
|
+
| お問い合わせ種別 | `category` / `disabled` select |
|
|
104
|
+
| お問い合わせ内容 | `message` / `readonly` textarea |
|
|
105
|
+
|
|
106
|
+
- 実際の submit はない
|
|
107
|
+
- 「入力内容を確認する」は `confirm.html` へのリンク
|
|
108
|
+
- 入力内容は保存されない
|
|
109
|
+
|
|
110
|
+
## 入力内容確認
|
|
111
|
+
|
|
112
|
+
template 内の固定 object を表示します。
|
|
113
|
+
|
|
114
|
+
```nunjucks
|
|
115
|
+
{% set application = {
|
|
116
|
+
name: "山田 太郎",
|
|
117
|
+
email: "taro@example.com",
|
|
118
|
+
phone: "090-0000-0000",
|
|
119
|
+
category: "商品について",
|
|
120
|
+
message: "sampleのお問い合わせ内容です。"
|
|
121
|
+
} %}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
> **Note**
|
|
125
|
+
>
|
|
126
|
+
> `taro@example.com` は予約された example domain の例です。
|
|
127
|
+
> 入力画面の内容が引き継がれた結果ではありません。
|
|
128
|
+
|
|
129
|
+
- 「入力画面へ戻る」→ `input.html`
|
|
130
|
+
- 「送信する」→ `complete.html`(実送信なし)
|
|
131
|
+
|
|
132
|
+
## 完了
|
|
133
|
+
|
|
134
|
+
静的な完了状態を示す画面です。
|
|
135
|
+
|
|
136
|
+
- 入力の送信・保存は行われていないと明記
|
|
137
|
+
- 「最初から確認する」→ `input.html`
|
|
138
|
+
- Portal へも戻れる
|
|
139
|
+
|
|
140
|
+
## Wizard CSS
|
|
141
|
+
|
|
142
|
+
| 項目 | パス |
|
|
143
|
+
| ---- | ---- |
|
|
144
|
+
| source | [`pages/wizard/assets/css/wizard.css`](../../src/sample/pages/wizard/assets/css/wizard.css) |
|
|
145
|
+
| output | `dist/sample/wizard/assets/css/wizard.css` |
|
|
146
|
+
| HTML | `assets/css/wizard.css` |
|
|
147
|
+
|
|
148
|
+
step indicator、form、確認リスト、完了パネルなどの見た目を担当します。
|
|
149
|
+
共通部分は `common.css` です。
|
|
150
|
+
|
|
151
|
+
## アクセシビリティ
|
|
152
|
+
|
|
153
|
+
実際の sample が備えるもの:
|
|
154
|
+
|
|
155
|
+
- 手順は `<ol>`
|
|
156
|
+
- 現在ステップに `aria-current="step"`
|
|
157
|
+
- 各入力に `label`
|
|
158
|
+
- 状態テキスト(現在 / 完了 / 未実施)
|
|
159
|
+
- 色だけに頼らない状態表現
|
|
160
|
+
|
|
161
|
+
これ以上のアクセシビリティ機能を、sample が保証するわけではありません。
|
|
162
|
+
|
|
163
|
+
## ステップを増やす方法
|
|
164
|
+
|
|
165
|
+
4 ステップにする場合の概念的な順序:
|
|
166
|
+
|
|
167
|
+
1. 新しい page(`.html.njk`)を作る
|
|
168
|
+
2. `wizard-steps.njk` に項目を足す
|
|
169
|
+
3. 各 page の `currentStep` を調整する
|
|
170
|
+
4. navigation の link を直す
|
|
171
|
+
5. CSS を確認する
|
|
172
|
+
6. `dev` / `build` で link を検査する
|
|
173
|
+
|
|
174
|
+
自動 routing や共有 state の機能はありません。
|
|
175
|
+
|
|
176
|
+
## 実際の Wizard にする場合
|
|
177
|
+
|
|
178
|
+
JSKim の外で必要になる典型例:
|
|
179
|
+
|
|
180
|
+
- 入力値の保存
|
|
181
|
+
- validation
|
|
182
|
+
- 画面間の state
|
|
183
|
+
- submit / API / backend
|
|
184
|
+
- 直接 URL アクセスの制御
|
|
185
|
+
- 完了後の state クリア
|
|
186
|
+
|
|
187
|
+
具体的な application 実装コードは、このガイドでは扱いません。
|
|
188
|
+
|
|
189
|
+
## Sample の限界
|
|
190
|
+
|
|
191
|
+
- 入力の引き継ぎはない
|
|
192
|
+
- 送信・保存はない
|
|
193
|
+
- step は page ごとの静的値
|
|
194
|
+
- session / localStorage による状態管理はない
|
|
195
|
+
|
|
196
|
+
製品全体の境界は [制限事項](14-limitations.md) を参照してください。
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# 制限事項
|
|
2
|
+
|
|
3
|
+
この章では、JSKim が提供しないことと、その意味を整理します。
|
|
4
|
+
ツールの境界を理解し、別途何が必要かを判断するための章です。
|
|
5
|
+
|
|
6
|
+
## 静的サイトの build 環境である
|
|
7
|
+
|
|
8
|
+
**提供しないもの:** server-side runtime、SSR framework、SPA framework。
|
|
9
|
+
|
|
10
|
+
**意味:** build 結果は静的な HTML / CSS / 画像などです。サーバー上で template を都度実行する製品ではありません。
|
|
11
|
+
|
|
12
|
+
**必要な場合:** SSR や SPA が必要なら、その目的に合う別のツールを検討します。
|
|
13
|
+
|
|
14
|
+
> **Note**
|
|
15
|
+
>
|
|
16
|
+
> JavaScript file 自体の render / copy は可能です。
|
|
17
|
+
> ただし JSKim は JavaScript bundler ではありません(後述)。
|
|
18
|
+
|
|
19
|
+
## Backend 機能はない
|
|
20
|
+
|
|
21
|
+
**提供しないもの:**
|
|
22
|
+
|
|
23
|
+
- API server
|
|
24
|
+
- database
|
|
25
|
+
- 認証 / 認可
|
|
26
|
+
- session
|
|
27
|
+
- 業務ロジック
|
|
28
|
+
- 実際の CRUD
|
|
29
|
+
- Wizard の入力 state 管理
|
|
30
|
+
|
|
31
|
+
**意味:** 公式 sample の CRUD / Wizard も画面構成の例です。
|
|
32
|
+
|
|
33
|
+
**必要な場合:** backend とフロントエンド連携は、利用者が別途実装します。
|
|
34
|
+
画面例は [CRUD例](12-crud-example.md) / [Wizard例](13-wizard-example.md) を参照してください。
|
|
35
|
+
|
|
36
|
+
## HTML の自動 import / migration はない
|
|
37
|
+
|
|
38
|
+
**提供しないもの:** 既存 HTML の自動解析、分割、変換。
|
|
39
|
+
|
|
40
|
+
**意味:** 既存サイトの移行は、利用者が project に合わせて手作業(または別ツール)で行います。
|
|
41
|
+
JSKim core の責任範囲ではありません。
|
|
42
|
+
|
|
43
|
+
将来の提供をこのガイドで約束しません。
|
|
44
|
+
|
|
45
|
+
## Bundler ではない
|
|
46
|
+
|
|
47
|
+
**提供しないもの:**
|
|
48
|
+
|
|
49
|
+
- JavaScript module bundling
|
|
50
|
+
- npm 依存の解決を伴う bundle
|
|
51
|
+
- transpile
|
|
52
|
+
- minify
|
|
53
|
+
- tree shaking
|
|
54
|
+
- code splitting
|
|
55
|
+
|
|
56
|
+
**意味:** `.js` / `.js.njk` は files pipeline で copy または Nunjucks render できますが、webpack / Vite のような変換パイプラインではありません。
|
|
57
|
+
|
|
58
|
+
**必要な場合:** bundling が必要なら専用の bundler を併用します。
|
|
59
|
+
|
|
60
|
+
## CSS preprocessor ではない
|
|
61
|
+
|
|
62
|
+
**提供しないもの:** Sass / Less / PostCSS などの組み込み処理、autoprefix、CSS minify。
|
|
63
|
+
|
|
64
|
+
**意味:** `.css.njk` は Nunjucks で文字列を生成するだけで、CSS compiler ではありません。平文 `.css` は byte copy です。
|
|
65
|
+
|
|
66
|
+
**必要な場合:** preprocessor が必要なら、別工程で生成した CSS を JSKim の source に置く方法を検討します。
|
|
67
|
+
|
|
68
|
+
## 独自の plugin システムはない
|
|
69
|
+
|
|
70
|
+
**提供しないもの:** JSKim 専用の plugin / extension 機構。
|
|
71
|
+
|
|
72
|
+
**意味:** 拡張の主な手段は `jskim.config.js` の `nunjucks.filters` / `nunjucks.globals` です。
|
|
73
|
+
これは Nunjucks への登録であり、汎用 plugin marketplace ではありません。
|
|
74
|
+
|
|
75
|
+
## Build は依存グラフに基づく増分 build ではない
|
|
76
|
+
|
|
77
|
+
**提供しないもの:** file 単位の依存解析による incremental build。
|
|
78
|
+
|
|
79
|
+
**意味:** 変更検知後は、設定に従い clean(既定)付きの全体再 build が基本です。
|
|
80
|
+
大規模 project では、変更のたびに全体を作り直す前提で設計します。
|
|
81
|
+
|
|
82
|
+
速度の優劣を数値で断定はしません。
|
|
83
|
+
|
|
84
|
+
## Multi-project の command 制限
|
|
85
|
+
|
|
86
|
+
| command | `--all` |
|
|
87
|
+
| ------- | ------- |
|
|
88
|
+
| `build` | 対応 |
|
|
89
|
+
| `watch` | 非対応 |
|
|
90
|
+
| `serve` | 非対応 |
|
|
91
|
+
| `dev` | 非対応 |
|
|
92
|
+
|
|
93
|
+
複数 project を同時に `watch` / `serve` / `dev` したい場合は、別 process で個別に起動する必要があります。
|
|
94
|
+
|
|
95
|
+
## Port の扱い
|
|
96
|
+
|
|
97
|
+
- 既定は `127.0.0.1:3000`
|
|
98
|
+
- 衝突時に次の空き port を自動選択しない
|
|
99
|
+
- `--port` または `serve.port` で変更する
|
|
100
|
+
- process manager 機能はない
|
|
101
|
+
|
|
102
|
+
詳細は [エラーとトラブルシュート](10-errors-and-troubleshooting.md) を参照してください。
|
|
103
|
+
|
|
104
|
+
## Browser open
|
|
105
|
+
|
|
106
|
+
- `dev --open` のみ
|
|
107
|
+
- `serve --open` は非対応
|
|
108
|
+
- OS の既定ブラウザ起動に依存
|
|
109
|
+
- 失敗時は warning で、開発サーバーは継続
|
|
110
|
+
|
|
111
|
+
## CSS soft reload の範囲
|
|
112
|
+
|
|
113
|
+
対象になり得る条件(概要):
|
|
114
|
+
|
|
115
|
+
- `.css` / `.css.njk` の `change`
|
|
116
|
+
- `templates[]` 配下ではない
|
|
117
|
+
- same-origin の `<link rel="stylesheet">`
|
|
118
|
+
|
|
119
|
+
対象外・制限の例:
|
|
120
|
+
|
|
121
|
+
- external stylesheet
|
|
122
|
+
- `<style>` inline
|
|
123
|
+
- 動的挿入 stylesheet(保証なし)
|
|
124
|
+
- soft reload 失敗時は full reload
|
|
125
|
+
|
|
126
|
+
詳細は [開発機能](09-development-features.md) を参照してください。
|
|
127
|
+
|
|
128
|
+
## Live reload は HMR ではない
|
|
129
|
+
|
|
130
|
+
- page の full reload、または CSS の差し替え
|
|
131
|
+
- JavaScript module の実行状態保持は保証しない
|
|
132
|
+
- React / Vue などの HMR と同種の機能ではない
|
|
133
|
+
|
|
134
|
+
## Browser overlay と環境依存
|
|
135
|
+
|
|
136
|
+
- `dev` + live reload 時に HTML へ script を注入
|
|
137
|
+
- overlay は Shadow DOM を使用
|
|
138
|
+
|
|
139
|
+
Strict な Content-Security-Policy など、ブラウザや page のセキュリティ設定によっては、注入や接続が制限される可能性があります。
|
|
140
|
+
すべての CSP 設定での動作を保証するものでも、必ず失敗すると断定するものでもありません。
|
|
141
|
+
|
|
142
|
+
## Config と Nunjucks の境界
|
|
143
|
+
|
|
144
|
+
- 余分な config key は無視されることがある(厳密 schema ではない)
|
|
145
|
+
- `autoescape` / `noCache` は JSKim が固定
|
|
146
|
+
- `data.rootPath` は予約
|
|
147
|
+
- `dev` では一部設定変更に process 再起動が必要
|
|
148
|
+
|
|
149
|
+
Nunjucks 全体の機能を JSKim の契約として保証しません。
|
|
150
|
+
公式ガイドは sample で有用な文法が中心です([Nunjucksの使い方](08-nunjucks.md))。
|
|
151
|
+
|
|
152
|
+
## Output directory
|
|
153
|
+
|
|
154
|
+
- `dist` は source ではない
|
|
155
|
+
- `build.clean` が `true`(既定)なら build 前に削除される
|
|
156
|
+
- `false` の場合、消えた source に対応する古い output が残ることがある
|
|
157
|
+
- 手編集の維持は保証しない
|
|
158
|
+
|
|
159
|
+
## Platform / path
|
|
160
|
+
|
|
161
|
+
- Windows では大文字小文字違いの output 衝突を検出する
|
|
162
|
+
- path は Node の `path` で扱い、HTML 内は `/` を使う
|
|
163
|
+
- Windows / macOS / Linux を特別に排除していない
|
|
164
|
+
- `--open` の挙動は OS の handler に依存する
|
|
165
|
+
|
|
166
|
+
## 公式 sample の範囲
|
|
167
|
+
|
|
168
|
+
- 学習用の静的 UI sample
|
|
169
|
+
- production-ready な application template ではない
|
|
170
|
+
- デザインシステム / UI ライブラリではない
|
|
171
|
+
- セキュリティや業務要件を満たすことを保証しない
|
|
172
|
+
|
|
173
|
+
## ツール選択の目安
|
|
174
|
+
|
|
175
|
+
| 必要 | 判断 |
|
|
176
|
+
| ---- | ---- |
|
|
177
|
+
| Nunjucks で静的 page を生成したい | JSKim が適合しやすい |
|
|
178
|
+
| API / database server | 別途 backend が必要 |
|
|
179
|
+
| JS bundling / transpile | 別途 bundler が必要 |
|
|
180
|
+
| 既存 HTML の自動 migration | 別作業 / 別ツールが必要 |
|
|
181
|
+
| 本格的な SPA | 目的に合う application framework を検討 |
|
|
182
|
+
|
|
183
|
+
特定製品の推奨や比較評価は、この章の範囲外です。
|
|
184
|
+
|
|
185
|
+
関連する運用上の確認は [エラーとトラブルシュート](10-errors-and-troubleshooting.md)、
|
|
186
|
+
画面例は [Dashboard例](11-dashboard-example.md) 以降を参照してください。
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# JSKim ユーザーガイド
|
|
2
|
+
|
|
3
|
+
このドキュメントは、JSKim を初めて利用する方向けの公式ガイドです。
|
|
4
|
+
|
|
5
|
+
対象 version は **v0.5.2** です。説明は現在の実装と公式 sample source に基づきます。
|
|
6
|
+
|
|
7
|
+
## このガイドについて
|
|
8
|
+
|
|
9
|
+
主な読者は次のとおりです。
|
|
10
|
+
|
|
11
|
+
> HTML、CSS、JavaScript の基本的な知識はあるが、
|
|
12
|
+
> JSKim および Nunjucks を初めて利用するユーザー
|
|
13
|
+
|
|
14
|
+
このガイドでは、次のことを学べます。
|
|
15
|
+
|
|
16
|
+
- JSKim が何をするツールか
|
|
17
|
+
- project の作り方と build / 開発サーバーの動かし方
|
|
18
|
+
- 公式 sample の構成と Dashboard / CRUD / Wizard の読み方
|
|
19
|
+
- CLI、設定、files pipeline、Nunjucks の使い方
|
|
20
|
+
- 開発機能と代表的なエラーの対処
|
|
21
|
+
- JSKim の適用範囲と制限
|
|
22
|
+
|
|
23
|
+
説明は公式の静的 UI sample(`src/sample/`)とあわせて読む前提です。
|
|
24
|
+
creator(`create-jskim`)で生成した project にも、同じ sample が含まれます。
|
|
25
|
+
|
|
26
|
+
## 章一覧
|
|
27
|
+
|
|
28
|
+
1. [JSKimとは](01-introduction.md)
|
|
29
|
+
2. [はじめ方](02-getting-started.md)
|
|
30
|
+
3. [プロジェクト構成](03-project-structure.md)
|
|
31
|
+
4. [基本的な開発workflow](04-basic-workflow.md)
|
|
32
|
+
5. [CLIリファレンス](05-cli-reference.md)
|
|
33
|
+
6. [設定](06-configuration.md)
|
|
34
|
+
7. [files pipeline](07-files-pipeline.md)
|
|
35
|
+
8. [Nunjucksの使い方](08-nunjucks.md)
|
|
36
|
+
9. [開発機能](09-development-features.md)
|
|
37
|
+
10. [エラーとトラブルシュート](10-errors-and-troubleshooting.md)
|
|
38
|
+
11. [Dashboard例](11-dashboard-example.md)
|
|
39
|
+
12. [CRUD例](12-crud-example.md)
|
|
40
|
+
13. [Wizard例](13-wizard-example.md)
|
|
41
|
+
14. [制限事項](14-limitations.md)
|
|
42
|
+
|
|
43
|
+
## 読み方
|
|
44
|
+
|
|
45
|
+
### 初めて使う場合
|
|
46
|
+
|
|
47
|
+
次の順がわかりやすいです。
|
|
48
|
+
|
|
49
|
+
1. [JSKimとは](01-introduction.md)
|
|
50
|
+
2. [はじめ方](02-getting-started.md)
|
|
51
|
+
3. [プロジェクト構成](03-project-structure.md)
|
|
52
|
+
4. [基本的な開発workflow](04-basic-workflow.md)
|
|
53
|
+
5. 公式 sample を見ながら [Dashboard例](11-dashboard-example.md) 以降
|
|
54
|
+
|
|
55
|
+
必要に応じて CLI / 設定 / files pipeline / Nunjucks の章を参照してください。
|
|
56
|
+
|
|
57
|
+
### 必要なときだけ参照する場合
|
|
58
|
+
|
|
59
|
+
| 知りたいこと | 章 |
|
|
60
|
+
| ------------ | -- |
|
|
61
|
+
| コマンドと option | [CLIリファレンス](05-cli-reference.md) |
|
|
62
|
+
| `jskim.config.js` | [設定](06-configuration.md) |
|
|
63
|
+
| render / copy / `rootPath` | [files pipeline](07-files-pipeline.md) |
|
|
64
|
+
| template 文法 | [Nunjucksの使い方](08-nunjucks.md) |
|
|
65
|
+
| live reload / overlay | [開発機能](09-development-features.md) |
|
|
66
|
+
| エラー対処 | [エラーとトラブルシュート](10-errors-and-troubleshooting.md) |
|
|
67
|
+
| できること / できないこと | [制限事項](14-limitations.md) |
|
|
68
|
+
|
|
69
|
+
### 公式 sample とあわせて読む
|
|
70
|
+
|
|
71
|
+
入口:
|
|
72
|
+
|
|
73
|
+
- [Portal](../../src/sample/pages/index.html.njk)
|
|
74
|
+
|
|
75
|
+
画面例:
|
|
76
|
+
|
|
77
|
+
- [Dashboard例](11-dashboard-example.md)
|
|
78
|
+
- [CRUD例](12-crud-example.md)
|
|
79
|
+
- [Wizard例](13-wizard-example.md)
|
|
80
|
+
|
|
81
|
+
## このガイドの範囲
|
|
82
|
+
|
|
83
|
+
### JSKim が提供するもの
|
|
84
|
+
|
|
85
|
+
- Nunjucks に基づく静的 HTML の render
|
|
86
|
+
- CSS や画像などの asset copy
|
|
87
|
+
- `build` / `watch` / `serve` / `dev` の workflow
|
|
88
|
+
- 開発サーバーと、開発中の reload / エラー表示の支援
|
|
89
|
+
|
|
90
|
+
### JSKim が提供しないもの
|
|
91
|
+
|
|
92
|
+
- backend
|
|
93
|
+
- API
|
|
94
|
+
- database
|
|
95
|
+
- 実際の CRUD 処理
|
|
96
|
+
- 実際の Wizard state 管理
|
|
97
|
+
- 既存 HTML の自動取り込みや移行ツール
|
|
98
|
+
|
|
99
|
+
詳細は [制限事項](14-limitations.md) を参照してください。
|