【问题标题】:firebase functions, cant resolve module?firebase 功能,无法解析模块?
【发布时间】: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


    【解决方案1】:

    通过使用 SendGrid 而不是 MailGun 解决了这个问题,这就像一个魅力......

    【讨论】:

      猜你喜欢
      • 2021-11-01
      • 2019-03-10
      • 2021-10-06
      • 2017-12-11
      • 2020-08-20
      • 2015-08-15
      • 2021-12-13
      • 2018-11-10
      • 2020-04-15
      相关资源
      最近更新 更多