【发布时间】:2022-01-08 20:53:10
【问题描述】:
我遇到了一个烦人的问题,我大部分时间都在尝试解决,但没有任何运气 - 还尝试在此处和 Google 上搜索解决方案,但没有任何运气,或者至少所有尝试过的解决方案都没有工作。
运行我的函数时,firebase 函数日志告诉我:
Cannot find module 'mailgun.js'
我不知道为什么它无法解析 package.json 文件中存在的模块。
来自 package.json:
"dependencies": {
"cors": "^2.8.5",
"firebase-admin": "^9.8.0",
"firebase-functions": "^3.14.1",
"form-data": "^4.0.0",
"mailgun.js": "^4.1.4"
},
我已经在functions文件夹中进行了npm install,它部署没有问题,所以问题是在调用函数时......
代码是:
import * as functions from "firebase-functions";
import Mailgun from "mailgun.js";
// eslint-disable-next-line @typescript-eslint/no-var-requires
const formData = require("form-data");
const domain = "https://app.mailgun.com/app/sending/domains/sandboxae7cd087b3854d25a6933f1fe489b5e3.mailgun.org";
const mgClient = new Mailgun(formData);
const mg = mgClient.client({
key: "mykey",
username: "api",
public_key: "mypublickey",
});
export const sendWelcomeEmailToClient = functions.https.onCall(
async (email: string) => {
return mg.messages.create(domain, {
from: "Task System",
to: email,
subject: "Testing",
html: "Dette er en test",
});
}
);
请注意,我也尝试过像这样在 mailgun.js 上执行 require 而不是 import,但也没有用: 此外,mailgun 文档说这是导入它的方式:https://www.npmjs.com/package/mailgun.js
const Mailgun = require("mailgun.js");
【问题讨论】:
标签: javascript typescript firebase