Cloud Functions for Firebase firebase deploy error: "Error parsing triggers: Cannot find module 'firebase-admin'"

Cloud Functions for Firebase firebase deploy error: "Error parsing triggers: Cannot find module 'firebase-admin'"

当我 运行 firebase deploy 我得到这个错误:

Error parsing triggers: Cannot find module 'firebase-admin'

这是我的代码:

const functions = require('firebase-functions');

const admin = require('firebase-admin');

我的package.json是:

  {
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "dependencies": {
    "firebase-admin": "^5.2.1",
    "firebase-functions": "^0.6.2",
    "request": "^2.83.0"
  },
  "private": true
}

这是我的全局节点模块:

npm list -g --depth=0                                       
/Users/TDK/.nvm/versions/node/v6.11.2/lib
├── child_process@1.0.2
├── firebase-admin@5.3.0
├── firebase-tools@3.12.0
├── fs@0.0.2
├── npm@5.4.2
└── request@2.83.0

我没有在本地安装 firebase-admin

运行 npm install, npm install firebase-admin, and npm install --save firebase-admin 在本地 functions 目录下 return 这个错误信息:

npm ERR! Cannot read property '0' of undefined

我正在使用 npm 版本 5.4.2。

我把~5.2.1改成了^5.2.1

我删除了 package-lock.json 但这并没有解决问题。

当我在项目根目录和 functions 目录中执行此操作时,我得到相同的错误消息。

有什么建议吗?

有效的方法是创建一个新目录并设置 Firebase 文档中的 "Hello world" 教程。这将创建一个包含 firebase-adminnode_modules 目录。然后我用旧目录交换了新的 node_modules 目录并且它工作了。

问题似乎是我在全局安装了 firebase-admin,所以 npm install 不会在我的 functions 目录中本地安装它,但是 firebase deploy 可以'找不到全局 Node 模块,它必须有本地 Node 模块。这是我的猜测。

rm -rf node_modules/

npm install

这对我有用。

删除 node_modules 文件夹或重命名它。之后,编辑您的 package.json 文件并将软件包版本设置为“*”以安装每个软件包的最新版本。