我正在使用webpack,ES6和Babel进行项目。模块有一个如下所示的require语句:
var ajaxGetJSON = require("../utils/ajaxGetJSON");
捆绑编译正常,但抛出了运行时错误
Uncaught TypeError: ajaxGetJSON is not a function
这是对webpack提供给我的模块的对象的检查:
当我将require更改为import ajaxGetJSON from "../utils/ajaxGetJSON";
时,不会发生运行时错误,并且应该是函数ajaxGetJSON
的被检查对象正常工作。
ajax模块使用export default myObject
。
为什么切换到导入修复了我的问题?
答案 0 :(得分:1)
从调试器工具提示中可以看出,require()
产生一个ES6模块对象(这是babel转换模块的对象),它不是一个函数,而是具有.default
属性的函数。 / p>
ajaxGetJSON
是该模块的默认导出,您应该将其导入。如果您使用的是ES6模块,则根本不应使用require
。