created: 2024-03-24T01:41:11.582Z

firebase deploy で `Could not read source directory`

ある日、いつものようにデプロイしようとするとこんなエラーが出た。

npx firebase deploy --only functions:scrape

Error: Could not read source directory. Remove links and shortcuts and try again

原因

ビルドアーティファクトになる src にはシンボリックリンクなんてないしなんでだろうと思ったが、 --debug をつけて実行したら本当にダメになってるシンボリックリンクが見つかった。

Error: ENOENT: no such file or directory, stat '/Users/myusername/.ghq/github.com/myusername/functions/bot/default.code-workspace'

[2024-03-24T01:34:56.749Z] Error: ENOENT: no such file or directory, stat '/Users/myusername/.ghq/github.com/myusername/functions/bot/default.code-workspace'
    at Object.statSync (node:fs:1676:25)
    at /Users/myusername/.ghq/github.com/myusername/functions/node_modules/firebase-tools/node_modules/graceful-fs/polyfills.js:319:16
    at readdirRecursiveHelper (/Users/myusername/.ghq/github.com/myusername/functions/node_modules/firebase-tools/lib/fsAsync.js:14:47)

vscode 用の設定ファイルを参照させるためにつくっていたリンクファイルが参照切れしていた。エラーメッセージは正しい。

参考

先に GitHub の issue がヒットしてそちらで「ネットワークが〜」とか変な流れになってるのを読んでしまっていたが、単純なエラーなのでこちらは参考にしなくて良いと思う。エラーメッセージが正しい。

エッセンシャル思考 最少の時間で成果を最大にする
[ad] エッセンシャル思考 最少の時間で成果を最大にする
グレッグ・マキューン, 高橋璃子 (Kindle版)