错误:使用节点命令运行 JS 文件时找不到模块“firebase”

Posted

技术标签:

【中文标题】错误:使用节点命令运行 JS 文件时找不到模块“firebase”【英文标题】:Error: Cannot find module 'firebase' when running JS file with node command 【发布时间】:2020-04-14 08:39:58 【问题描述】:

在运行我的 JS 文件之前,我已经启动了以下操作:

firebase serve --only functions

之后,我尝试使用以下命令运行我的 Firebase 函数,该命令在几个月前就可以使用:

node sendEmail.js

但我收到以下错误:

D:\Firebase\imtp\testing>node sendEmail.js
internal/modules/cjs/loader.js:800
    throw err;
    ^

Error: Cannot find module 'firebase'
Require stack:
- D:\Firebase\imtp\testing\sendEmail.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:797:15)       
    at Function.Module._load (internal/modules/cjs/loader.js:690:27)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (D:\Firebase\imtp\testing\sendEmail.js:3:18)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10) 
  code: 'MODULE_NOT_FOUND',
  requireStack: [ 'D:\\Firebase\\imtp\\testing\\sendEmail.js' ]

我尝试了以下方法,但没有成功:

    删除我的functions 文件夹的node_modules 文件夹并运行npm i --save firebase-functions。 删除根node_modules 文件夹并运行npm install

仅供参考,在我的sendEmail.js 中,我确实有以下代码:

(注意:这只是我的函数的调用者。)

"use strict";
// Initialize Function Caller App
const firebase = require("firebase");
// Required for side-effects
require("firebase/functions");

var config = 
  // My config info here.
;
firebase.initializeApp(config);

var functions = firebase.functions();
// Prepare data
const contactInfo = 
  firstName : "John",
  lastName : "Rambo",
  email : "rambo@gmail.com",
  subject : "Test Nodemailer v2.0",
  message : "Hi from sendEmail.js!"
;

// Call Firebase Function
var sendEmail = firebase.functions().httpsCallable('sendEmail');
sendEmail(contactInfo).then(function (result) 
  const status = result.data.status;

  if (status == true) 
    console.log("Email successfully sent!");
   else 
    console.log("Failed to send email: " + JSON.stringify(result.data));
  

).catch(function (error) 
  // Getting the Error details.
  var code = error.code;
  var message = error.message;
  var details = error.details;

  console.log(details);
);

我可以知道我还应该做什么或检查以修复此错误吗?如果您需要我的sendEmail.js 的更多详细信息,请告诉我。谢谢!

【问题讨论】:

您能分享您的整个 Cloud Functions 代码吗? 【参考方案1】:

您需要安装 firebase 模块:

npm i firebase

https://www.npmjs.com/package/firebase

【讨论】:

你根据问题安装了npm i --save firebase-functions.. 在package.json 中你看到firebase 模块吗? 是的,在dependencies"firebase": "^5.10.0" 下。事实上,我也再次运行npm install -g firebase-tools,但还是一样。我还需要将它安装在testing 文件夹下吗?我认为我的 Firebase 应该是全局

以上是关于错误:使用节点命令运行 JS 文件时找不到模块“firebase”的主要内容,如果未能解决你的问题,请参考以下文章

面临错误:在运行 Node Js 服务器时找不到模块“C:\Users\DELL\Desktop\node js 程序\文件”

错误:使用 Ionic 时找不到模块“../lib/utils/unsupported.js”

使用 npm 命令时找不到模块“npmlog”错误消息

启动包含管道命令的子进程时找不到文件错误

npm:在linux ubuntu中使用npm命令时找不到模块semver错误[重复]

“错误:在 react-redux 项目中安装节点包时找不到模块'internal/util/types'”