clasp の push で package.json が求められる #gas

GAS の実装や管理には clasp が便利なんですが、いざ clasp push で反映しようとしたらエラーが出て怒られた。

ENOENT: no such file or directory, open 'package.json'

複数の App Script をまとめて管理するために、下記のようなディレクトリ構造にしていたのが原因っぽい。

※ルートには package.json があるが、スクリプト本体のディレクトリにはない状態

.
├── HogeScript
│   ├── clasp.json
│   ├── appscript.json
│   └── hoge.ts
├── FugaScript
│   ├── clasp.json
│   ├── appscript.json
│   └── fuga.ts
└── package.json

clasp のリポジトリ同じ問題と思われる Issue があって、「空の package.json 作ると解消」とのことなので、試してみると解消した。

https://github.com/google/clasp/issues/875

空の package.json

{}
.
├── HogeScript
│   ├── clasp.json
│   ├── appscript.json
│   ├── hoge.ts
│   └── package.json    ←ここにも作ってあげる
├── FugaScript
│   ├── clasp.json
│   ├── appscript.json
│   ├── fuga.ts
│   └── package.json    ←ここにも作ってあげる
└── package.json
$ cd HogeScript
$ clasp push