firebase deployでエラーが発生する。npm ERR! Error: Invalid name: "@types/jsonwebtoken"
firebase deployコマンドを発行する時にエラーが発生する。
# firebase deploy
=== Deploying to 'testproj-b1d52'...
i deploying database, functions, hosting
✔ database: rules ready to deploy.
i functions: ensuring necessary APIs are enabled...
i runtimeconfig: ensuring necessary APIs are enabled...
✔ runtimeconfig: all necessary APIs are enabled
✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
Error: Error parsing triggers: Cannot find module 'lodash'
Try running "npm install" in your functions directory before deploying.
Having trouble? Try firebase deploy --help
どうやら、firebase functionsでモジュールが足りないようだ。
# cd functions/
# npm install
npm http 200 https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz
npm http 200 https://registry.npmjs.org/ms/-/ms-0.7.3.tgz
npm http 200 https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz
npm http 200 https://registry.npmjs.org/topo/-/topo-1.1.0.tgz
npm http 200 https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz
npm http 200 https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz
npm http 200 https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-7.2.0.tgz
npm http 200 https://registry.npmjs.org/@types/node/-/node-7.0.12.tgz
npm ERR! Error: Invalid name: "@types/jsonwebtoken"
npm ERR! at ensureValidName (/usr/lib/node_modules/normalize-package-data/lib/fixer.js:281:15)
npm ERR! at Object.module.exports.fixNameField (/usr/lib/node_modules/normalize-package-data/lib/fixer.js:196:5)
npm ERR! at /usr/lib/node_modules/normalize-package-data/lib/normalize.js:29:38
npm ERR! at Array.forEach (native)
npm ERR! at normalize (/usr/lib/node_modules/normalize-package-data/lib/normalize.js:28:15)
npm ERR! at final (/usr/lib/node_modules/read-package-json/read-json.js:310:33)
npm ERR! at then (/usr/lib/node_modules/read-package-json/read-json.js:124:33)
npm ERR! at /usr/lib/node_modules/read-package-json/read-json.js:234:40
npm ERR! at fs.js:272:14
npm ERR! at /usr/lib/node_modules/graceful-fs/graceful-fs.js:103:5
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 2.6.32-358.23.2.el6.x86_64
npm ERR! command "node" "/usr/bin/npm" "install"
npm ERR! cwd /var/www/html/itunesdb/firebase/functions
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /var/www/html/itunesdb/firebase/functions/npm-debug.log
npm ERR! not ok code 0
npm ERR! Error: Invalid name: "@types/jsonwebtoken"
エラーが直らない。
調べてみると、npmのバージョンが古いという記事があった。
updagrade from firebase npm to firebase-admin npm - Google グループ updagrade from firebase npm to firebase-admin npm - Google グループ
よく見ると、この環境のnodeのバージョンはv0.10.48、npmのバージョンは1.3.6である。
古すぎる。
Node.jsをCentOS6.7にインストールしてみた。 - ah-2.com の手順で新しいバージョンのnodeやnpmをインストールしてみた。
# node --version
v6.10.3
# npm --version
3.10.10
これでやっとfirebase deployコマンドが正常に動作した。