适用于Firebase firebase的云功能部署错误:"解析触发器时出错:无法找到模块' firebase-admin'"

时间:2017-09-27 20:46:13

标签: node.js npm-install google-cloud-functions 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-adminenter image description here

在本地npm install目录中运行npm install firebase-adminnpm install --save firebase-adminfunctions会返回以下错误消息:

npm ERR! Cannot read property '0' of undefined

我正在使用npm版本5.4.2。

我将~5.2.1更改为^5.2.1

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

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

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

rm -rf node_modules/

npm install

这对我有用。

答案 1 :(得分:0)

有用的是创建一个新目录并设置" Hello world" Firebase文档中的教程。这将创建一个包含node_modules的{​​{1}}目录。然后,我将新的firebase-admin目录与旧目录交换,并且它有效。

问题似乎是我已node_modules全局安装,因此firebase-admin无法在我的npm install目录中本地安装,但functions可以&# 39;找到全局节点模块,它必须有本地节点模块。这是我的猜测。

答案 2 :(得分:0)

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