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

Vite开发版本正常但构建后报require未定义错误求助

导入jquery-contextmenu导致Vite构建后require is not defined的原因

核心原因

  • jquery-contextmenu是基于CommonJS规范开发的包,内部直接使用了Node.js环境独有的require()语法,而浏览器原生并不支持这个API。
  • Vite在开发模式下,依赖esbuild实时转译CommonJS模块,能把require转换成浏览器可识别的代码,所以开发时运行完全正常;但生产构建时,esbuild的转译策略更偏向于保留模块原有结构以提升构建性能,对于未做ES模块兼容的CommonJS包,会直接把require语法打包进最终产物,导致浏览器加载时抛出未定义错误。
  • 额外影响:该包依赖jQuery,如果你的jQuery导入方式也未做好ES模块适配,会进一步加剧这个问题的出现概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:04:50