Cloud functions emulatorを公式ドキュメントに沿ってYarnでインストールしたのにできなかった話
ドキュメントには、「エミュレータを使用するには、現在では 6.11.1 以上の Node.js が必要です。」と注意書きがされているにも関わらず、Node.js v8.10.0で
yarn global add @google-cloud/functions-emulator
とすると、
Expected version "~6".
と、「君のnodeは6以下じゃないからダメだよ、入らないよ」と怒られるのでなんでやねん!となっていました。
が、公式のgithubにissueが上がっていて、解決策を見つけられました。
Cannot install functions emulator · Issue #267 · googlearchive/cloud-functions-emulator · GitHub
yarn global add @google-cloud/functions-emulator --ignore-engines
で、インストールできました!
Thanks!!
エラー自体の回避方法
どうやら、依存関係にあるライブラリの中に6以下じゃないと入らないものが含まれていて、それが引っかかっている様子。
このエラー自体を回避したい場合は、大人しく指示に沿って6以下のNode.jsでインストールするのが良いかと思います。
また、issueにもある通り、何かの折に--ignore-engines
フラグを求められることもないので、安全策を講じる方が効率も良さそうです。
公式Doc:https://cloud.google.com/functions/docs/emulator?hl=ja
【19.9.23 追記】cloud-functions-emulatorは現在アーカイブされてます
公式のgithubにて2019年5月16日に作成されたissueによると functions-framework という新しいツールの利用を推奨しています。
詳細はこちらの記事にて