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

使用@slack/webhook遇Axios ERR_REQUIRE_ESM错误求助

解决@slack/webhook引入Axios时的ERR_REQUIRE_ESM错误

问题原因

@slack/webhook 7.x版本内部采用CommonJS的require()语法引入依赖,但Axios 1.6.x已经完全切换为ES模块,CommonJS模块无法直接require ES模块,因此触发ERR_REQUIRE_ESM错误。

解决方案

方案1:降级Axios到兼容版本

Axios 0.27.x版本同时支持CommonJS和ES模块,降级后可解决模块兼容问题:

# npm
npm install axios@0.27.2

# yarn
yarn add axios@0.27.2

方案2:将项目切换为ES模块模式

在项目根目录的package.json中添加"type": "module",将整个项目标记为ES模块:

{
  "type": "module"
}

同时把代码中的require改为import:

// 原代码
const { IncomingWebhook } = require('@slack/webhook');

// 修改后
import { IncomingWebhook } from '@slack/webhook';

之后运行项目无需再加-r esm参数,直接执行:

node index.js

方案3:使用动态import替代require(保留CommonJS模式)

如果需要保持项目为CommonJS模式,可通过动态import()加载@slack/webhook:

async function sendSlackNotification() {
  const { IncomingWebhook } = await import('@slack/webhook');
  const webhook = new IncomingWebhook('你的Slack Webhook地址');
  await webhook.send({ text: '测试通知' });
}

sendSlackNotification().catch(err => console.error('发送失败:', err));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 07:02:02