d48cda4081
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
136 lines
3.0 KiB
Markdown
136 lines
3.0 KiB
Markdown
---
|
|
paths:
|
|
- "**/*.ets"
|
|
- "**/*.ts"
|
|
- "**/module.json5"
|
|
- "**/oh-package.json5"
|
|
---
|
|
# HarmonyOS / ArkTS フック
|
|
|
|
> このファイルは [common/hooks.md](../common/hooks.md) を HarmonyOS 固有のビルドおよび検証フックで拡張します。
|
|
|
|
## ビルドコマンド
|
|
|
|
### HAP パッケージのビルド
|
|
|
|
```bash
|
|
# HAP パッケージをビルドする(グローバル hvigor 環境)
|
|
hvigorw assembleHap -p product=default
|
|
|
|
# 特定のモジュールでビルドする
|
|
hvigorw assembleHap -p module=entry -p product=default
|
|
|
|
# クリーンビルド
|
|
hvigorw clean
|
|
```
|
|
|
|
### DevEco Studio CLI
|
|
|
|
```bash
|
|
# プロジェクト構造を確認する
|
|
hvigorw --version
|
|
|
|
# 依存関係をインストールする
|
|
ohpm install
|
|
|
|
# 依存関係を更新する
|
|
ohpm update
|
|
```
|
|
|
|
## 推奨 PostToolUse フック
|
|
|
|
### .ets/.ts ファイル編集後
|
|
|
|
ArkTS のコンパイルエラーを確認するために hvigor ビルドを実行する:
|
|
|
|
```json
|
|
{
|
|
"type": "PostToolUse",
|
|
"matcher": {
|
|
"tool": ["Edit", "Write"],
|
|
"filePath": ["**/*.ets", "**/*.ts"]
|
|
},
|
|
"hooks": [
|
|
{
|
|
"command": "hvigorw assembleHap -p product=default 2>&1 | tail -20",
|
|
"async": true,
|
|
"timeout": 60000
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### module.json5 編集後
|
|
|
|
パーミッションとアビリティの宣言を検証する:
|
|
|
|
```json
|
|
{
|
|
"type": "PostToolUse",
|
|
"matcher": {
|
|
"tool": "Edit",
|
|
"filePath": "**/module.json5"
|
|
},
|
|
"hooks": [
|
|
{
|
|
"command": "echo '[HarmonyOS] module.json5 modified - verify permissions and abilities'",
|
|
"async": false
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### oh-package.json5 編集後
|
|
|
|
依存関係を再インストールする:
|
|
|
|
```json
|
|
{
|
|
"type": "PostToolUse",
|
|
"matcher": {
|
|
"tool": "Edit",
|
|
"filePath": "**/oh-package.json5"
|
|
},
|
|
"hooks": [
|
|
{
|
|
"command": "ohpm install 2>&1 | tail -10",
|
|
"async": true,
|
|
"timeout": 30000
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## PreToolUse フック
|
|
|
|
### V1 デコレーターガード
|
|
|
|
コードに V1 状態管理デコレーターが含まれている場合に警告する:
|
|
|
|
```json
|
|
{
|
|
"type": "PreToolUse",
|
|
"matcher": {
|
|
"tool": ["Write", "Edit"],
|
|
"filePath": "**/*.ets"
|
|
},
|
|
"hooks": [
|
|
{
|
|
"command": "echo '[HarmonyOS] Reminder: Use @ComponentV2 / @Local / @Param - V1 decorators (@State, @Prop, @Link) are prohibited'"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## 検証チェックリスト
|
|
|
|
各実装サイクルの後、以下を確認する:
|
|
|
|
- [ ] `hvigorw assembleHap` がエラーなしで完了する
|
|
- [ ] 新規または変更した `.ets` ファイルに V1 デコレーターがない
|
|
- [ ] 新規または変更したファイルに `@ohos.router` のインポートがない
|
|
- [ ] すべての API パーミッションが `module.json5` に宣言されている
|
|
- [ ] すべての依存関係が `oh-package.json5` に記載されている
|
|
- [ ] リソース文字列がすべての i18n ディレクトリに追加されている
|
|
- [ ] 新しいカラーリソースにダークテーマのカラーが提供されている
|