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

