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

Vercel Serverless Functions中axios导入兼容问题求助

Vercel Serverless Functions 中 Axios 跨环境兼容问题解决方案

问题背景

在Vercel Serverless Functions中使用Axios时,本地开发环境(Node 14.15.1/18.15.0)与Vercel部署环境(Node 18.x)存在导入方式兼容性冲突:

  • 直接导入axios:本地运行正常,但部署后提示找不到/var/task/node_modules/axios/dist/node/axios.cjs模块
  • 直接导入axios/dist/node/axios.cjs:部署后正常,但本地开发报ERR_PACKAGE_PATH_NOT_EXPORTED错误

通用解决方案

方案一:环境区分动态导入

利用Vercel自动注入的VERCEL环境变量(部署时该变量值为1),动态选择适配当前环境的导入方式:

CommonJS 写法

let axios;
if (process.env.VERCEL) {
  // Vercel 部署环境
  axios = require('axios/dist/node/axios.cjs');
} else {
  // 本地开发环境
  axios = require('axios');
}

ES 模块动态导入写法

let axios;
if (process.env.VERCEL) {
  axios = (await import('axios/dist/node/axios.cjs')).default;
} else {
  axios = (await import('axios')).default;
}

方案二:降级 Axios 版本

Axios v1.x 系列的ESM/CJS混合导出逻辑在Vercel Serverless环境存在兼容问题,降级到v0.27.x版本后,直接使用import axios from 'axios'即可同时适配本地开发与部署环境:

npm install axios@0.27.2

方案三:覆盖 Axios 的导出配置(临时方案)

通过package.json的overrides(npm 8.3+)或resolutions(Yarn)配置,强制让本地环境识别axios/dist/node/axios.cjs路径:

{
  "overrides": {
    "axios": {
      "exports": {
        ".": "./index.js",
        "./dist/node/axios.cjs": "./dist/node/axios.cjs"
      }
    }
  }
}

验证步骤

  1. 本地开发:执行vercel dev启动本地服务,调用函数端点确认无报错
  2. 部署验证:推送代码至Vercel,查看函数运行日志确认正常响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:25:29