## 事象
[[npm-watch]]を使って `src` ディレクトリ配下の `*.ts` が変更されたときに、`build` のscriptを実行したい。`watch`と`script`の内容は以下。
```json
{
"watch": {
"build": "src/*.ts"
},
"scripts": {
"build": "node build.mjs",
"build:watch": "npm-watch"
}
}
```
## 原因
`watch.build`の設定が(たぶん)違うから。
## 解決方法
stringではなくobjectを指定する。
```json
{
"watch": {
"build": {
"patterns": [
"src"
],
"extensions": "ts"
}
},
"scripts": {
"build": "node build.mjs",
"build:watch": "npm-watch"
}
}
```
> [!attention]
>
> READMEで真っ先に以下の設定があるのでハマリやすい... これがなぜ動かないのか... 動かないとしたらなぜ真っ先に提示されているのかは謎。自分のやり方が悪いのだろうか..?
>
> ```json
> {
> "watch": {
> "test": "{src,test}/*.js"
> },
> "scripts": {
> "test": "tape test/*.js",
> "watch": "npm-watch"
> }
> }
> ```
## 参考
- [npm\-watch の使い方 \- ゲーム作るくんのサイト](https://gametsukurukun.com/docs/npm-watch/)