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

Next.js(Vercel)中导入google-cloud/speech模块失败求助

解决Next.js(部署于Vercel)中Google Cloud Speech模块导入问题

问题根源

你在next.config.js里将google-cloud/speech配置为resolve.fallback: { 'google-cloud/speech': false },这会让Webpack直接忽略该模块的加载,导致导入后speech对象为空,自然打印无输出。

解决方案

1. 修正Webpack配置

Next.js的API路由运行在Node.js服务端环境,不需要对@google-cloud/speech做客户端兼容处理,因此要移除fallback中对该模块的禁用配置:

// next.config.js
module.exports = withBundleAnalyzer({  
  webpack5: true,
  webpack: (config) => {
    // 移除 'google-cloud/speech': false 这一行
    // 若有其他fallback需求,仅保留必要模块(如fs、path等,按需添加)
    config.resolve.fallback = {
      // 示例:如果需要其他fallback模块,在这里添加
      // fs: false,
      // path: require.resolve('path-browserify'),
    };
    return config;
  },
})

2. 正确导入模块

API路由属于服务端代码,可直接使用ES模块或CommonJS导入,推荐用ES模块风格更贴合Next.js生态:

// API路由文件
import { getAuth } from "firebase/auth";
// 使用ES模块导入@google-cloud/speech
import speech from '@google-cloud/speech';

export async function POST(req: NextRequest) {
  console.log(speech, 'lx');
  const body = await req.json();
  // 后续业务逻辑
}

3. 必要前置检查

  • 确保已安装依赖包:
npm install @google-cloud/speech
# 或
yarn add @google-cloud/speech
  • Vercel部署时,需配置Google Cloud服务账号密钥:将密钥内容存入Vercel项目的环境变量(如GOOGLE_APPLICATION_CREDENTIALS),避免将密钥文件提交至代码仓库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:46:08