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

Next.js中Nodemailer无法运行:提示Module not found: Can't resolve 'stream'

解决Next.js中Nodemailer的Module not found: Can't resolve 'stream'错误

错误原因

Nodemailer依赖Node.js核心模块stream,但Next.js在打包浏览器端代码时无法识别这个仅存在于Node.js环境的模块,从而触发报错。

解决步骤

  • 安装浏览器兼容的stream实现包:

    npm install stream-browserify
    # 或使用yarn
    yarn add stream-browserify
    
  • 修改项目根目录下的next.config.js,添加webpack配置以替换模块:

    /** @type {import('next').NextConfig} */
    const nextConfig = {
      webpack: (config) => {
        config.resolve.fallback = {
          ...config.resolve.fallback,
          stream: require.resolve('stream-browserify'),
        };
        return config;
      },
    };
    
    module.exports = nextConfig;
    
  • 检查代码位置:确保Nodemailer仅在服务器端代码中使用,比如API Route(如你的app/api/contact/route.js)或带有'use server'指令的Server Component里,不要在客户端组件中导入Nodemailer。

  • 重启Next.js开发服务器:修改配置后必须重启服务才能生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:53:14