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

如何在NX中构建并运行依赖ESM库的Node应用?

NX工作区Express后端引入ESM库报错问题

背景

我有一个包含React前端和Express后端的NX工作区,给后端添加依赖时,引入ESM库遇到了问题。执行nx run express-server:serve命令(使用@nx/js:node执行器)时,出现以下错误:
Error [ERR_REQUIRE_ESM]: require() of ES Module Instead change the require of index.js in null to a dynamic import() which is available in all CommonJS modules.

调研

我查了很多相关帖子和线程,但没找到解决方案。我觉得这不是NX的bug,只是现在仅支持ESM的库越来越多,肯定有可行的解决办法。我试过把工作区升级为ESM,但NX对ESM的支持不够,最后引发了其他错误。我希望继续用NX,同时能引入仅支持ESM的库。

相关线程

  • NX仓库Issue #11335
  • NX仓库PR #10414
  • NX仓库Issue #10565
  • NX仓库Issue #7872
  • NX仓库Issue #10296
  • NX仓库Issue #18974

示例代码

示例仓库:nx-express-esm

  • 执行npm i安装依赖
  • 执行nx run express-server:build(可正常运行)
  • 执行nx run express-server:serve(触发上述错误)

这是用于演示问题的简单示例。我知道可以将nanoid降级到3版本,但还有其他无法降级的ESM库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 10:51:05