You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在DigitalOcean FaaS中无法使用依赖包的问题求助

DigitalOcean FaaS中NodeMailer模块导入失败的解决方法

问题分析

你遇到的两个错误根源分别是:

  1. require语法不被支持:DigitalOcean的FaaS默认采用ES模块(.mjs)运行环境,CommonJS的require()语法在ES模块作用域中无法使用,因此抛出ReferenceError。
  2. 依赖未安装:改用import后出现ERR_MODULE_NOT_FOUND,核心原因是FaaS环境中没有安装nodemailer包,ES模块无法找到对应的模块文件。

解决步骤

1. 使用正确的ES模块导入语法

nodemailer的ES模块导出结构需要对应正确的导入写法,建议使用:

import * as nodemailer from 'nodemailer';

2. 在FaaS环境中安装nodemailer依赖

针对你使用Web界面的场景,有两种可行方式添加依赖:

  • Web界面直接配置:在DigitalOcean函数的设置页面,找到「依赖」或「npm依赖」选项,添加nodemailer(可指定版本,例如nodemailer@6.9.0),保存后平台会自动安装该依赖。
  • 上传包含package.json的代码包:本地创建package.json文件,在dependencies中声明nodemailer:
{
  "dependencies": {
    "nodemailer": "^6.9.0"
  }
}

将package.json和你的函数代码打包后上传到DigitalOcean,平台会读取配置自动安装依赖。

内容的提问来源于stack exchange,提问作者Donnie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:22:11