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

NodeJS搭配Husky、lint-staged、eslint出现ERR_REQUIRE_ESM错误求助

问题根因

这个错误本质不是ESLint检索node_modules导致的,是项目依赖的supports-color包9.x及以上版本为纯ESM模块,无法在你当前CommonJS规范的husky钩子脚本中被require()引入,不同设备复现情况不同是因为依赖版本没有被锁死,部分设备安装到了8.x的兼容版本。


解决步骤

  1. 锁定兼容版本的supports-color
    执行以下命令安装8.x版本的supports-color,该版本支持CommonJS规范:
yarn add -D supports-color@8
  1. 清理冗余的git钩子文件
    报错触发自commit-msg钩子,但你配置的husky仅声明了pre-commit钩子,说明本地.git/hooks目录下存在冗余的旧钩子文件,直接删除该文件即可:
rm .git/hooks/commit-msg

如果还有其他异常钩子,可以删除.git/hooks下所有自动生成的钩子文件后,重新执行husky安装命令生成对应钩子:

yarn husky install
  1. 修正lint-staged配置错误
    你当前的lint-staged配置文件名有误,正确名称应为.lintstagedrc.json,而非.lintstagedrd.json,同时将配置内容中的eslint执行命令简化,避免多余的全量扫描:
{
  "*.ts": [
    "eslint --fix",
    "git add"
  ]
}
  1. 确认忽略配置生效
    检查你的.eslintignore文件,确保已包含以下配置:
node_modules/
dist/
.git/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:54:03