Tengo un problema molesto que pasé la mayor parte del día tratando de resolver sin suerte. También intenté buscar una solución aquí y en Google, pero sin suerte, o al menos todas las soluciones probadas no funcionaron.
Cuando ejecuto mi función, el registro de la función Firebase me dice:
Cannot find module 'mailgun.js'No tengo idea de por qué no resolverá el módulo tal como existe en el archivo package.json.
Del paquete.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" },Hice una instalación de npm dentro de la carpeta de funciones y se implementa sin problemas, por lo que el problema es cuando se llama a la función...
El código es:
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", }); } );Tenga en cuenta que también intenté hacer un requerimiento en lugar de importar en mailgun.js así, pero tampoco funcionó: Además, la documentación de mailgun dice que esa es la forma de importarlo: https://www.npmjs. com/paquete/mailgun.js
const Mailgun = require("mailgun.js");Lo resolví usando SendGrid en lugar de MailGun, eso funciona de maravilla...