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

Vue应用引入JS模块报错module.exports为undefined是什么原因?

问题原因
  • Vue项目的前端运行环境默认遵循ES模块(ESM)规范,module、module.exports是CommonJS规范的内置变量,仅Node.js或专门配置过的CommonJS打包环境才会注入,前端默认环境下不存在module全局对象,因此直接调用module.exports会抛出变量未定义的错误。
  • 你已经在Vue文件中使用了ESM规范的import语法导入模块,混用CommonJS导出逻辑本身也会存在兼容问题,即便打包工具做了兼容处理,也会增加不必要的解析开销。
修复方案

直接将module.js的导出逻辑改为ESM规范即可:
如果是要导出多个方法的对象,用默认导出:

// module.js 代码
export default {
  example1: function() { return true },
  // 其他要导出的方法可以继续加在这里
}

如果是单个方法/变量导出,也可以用命名导出:

// module.js 代码
export const example1 = () => true

对应导入逻辑:默认导出可以保留你现有的import Module from '../module.js'写法,调用时用Module.example1()即可;命名导出需要调整导入写法为import { example1 } from '../module.js',可以直接调用example1()。

模块存放建议
  • 通用工具类模块统一放在src/utils/目录下,全局所有组件都可以方便引用,也便于后续维护
  • 如果该模块仅为特定业务模块服务,可以存放在对应业务模块的目录下,比如src/views/对应业务文件夹/utils/
  • 不要将js模块放在public等静态资源目录下,放在src目录内的代码会经过打包工具的编译、压缩、Tree Shaking优化,性能更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 15:24:03