Error: "Cannot find module" while running firebase cloud function
Error: "Cannot find module" while running firebase cloud function
const functions = require('firebase-functions');
var nodemailer = require('nodemailer');
// const express=require('express');
var transporter=nodemailer.createTransport('smtps://username@gmail.com:password5@smtp.gmail.com');
exports.sendMail=functions.https.onRequest((req,res)=>{
var mailOptions={
to: 'receiver@gmail.com',
subject: 'Test Mail',
html: 'Testing with Node.js'
}
transporter.sendMail(mailOptions,function(err,response){
if(err){
res.send('Mail not sent');
}
else{
res.send('Mail sent');
}
});
});
我正在从我的 Firebase 应用发送邮件。根据我在 中提出的问题,我使用 Firebase 云功能发送邮件。上面的代码是我的 index.js 文件。
这是我的 package.json 文件
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase serve --only functions",
"shell": "firebase experimental:functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "~5.4.2",
"firebase-functions": "^0.7.1",
"sendgrid": "^5.2.3"
},
"private": true
}
但是在部署代码时出现错误。 您是否在 package.json 依赖项中列出了所有必需的模块? 这是什么错误。如何解决?
您的依赖项中缺少 nodemailer
。只需添加它...
npm install nodemailer --save
将导致(其中 x.x.x
是合适的版本)
"dependencies": {
"firebase-admin": "~5.4.2",
"firebase-functions": "^0.7.1",
"nodemailer": "^x.x.x",
"sendgrid": "^5.2.3"
}
这很可能对您的开发有用,因为您实际上已经在本地或全局安装了 nodemailer
,但由于错误指出,它在远程计算机上不存在
Cannot find module 'nodemailer'
我的场景不同,它与多个 package.json 相关,我有两个不同的 package.json,一个是全局的,另一个是针对内部云功能的。我的错误是我在云功能之外安装了软件包。解决方案是,确保在正确的目录中执行 npm i modulename
。
const functions = require('firebase-functions');
var nodemailer = require('nodemailer');
// const express=require('express');
var transporter=nodemailer.createTransport('smtps://username@gmail.com:password5@smtp.gmail.com');
exports.sendMail=functions.https.onRequest((req,res)=>{
var mailOptions={
to: 'receiver@gmail.com',
subject: 'Test Mail',
html: 'Testing with Node.js'
}
transporter.sendMail(mailOptions,function(err,response){
if(err){
res.send('Mail not sent');
}
else{
res.send('Mail sent');
}
});
});
我正在从我的 Firebase 应用发送邮件。根据我在
这是我的 package.json 文件
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase serve --only functions",
"shell": "firebase experimental:functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "~5.4.2",
"firebase-functions": "^0.7.1",
"sendgrid": "^5.2.3"
},
"private": true
}
但是在部署代码时出现错误。 您是否在 package.json 依赖项中列出了所有必需的模块? 这是什么错误。如何解决?
您的依赖项中缺少 nodemailer
。只需添加它...
npm install nodemailer --save
将导致(其中 x.x.x
是合适的版本)
"dependencies": {
"firebase-admin": "~5.4.2",
"firebase-functions": "^0.7.1",
"nodemailer": "^x.x.x",
"sendgrid": "^5.2.3"
}
这很可能对您的开发有用,因为您实际上已经在本地或全局安装了 nodemailer
,但由于错误指出,它在远程计算机上不存在
Cannot find module 'nodemailer'
我的场景不同,它与多个 package.json 相关,我有两个不同的 package.json,一个是全局的,另一个是针对内部云功能的。我的错误是我在云功能之外安装了软件包。解决方案是,确保在正确的目录中执行 npm i modulename
。