gpt4 book ai didi

javascript - 为什么切换到从 require 导入可以修复运行时错误?

转载 作者:行者123 更新时间:2023-12-03 07:36:02 24 4
gpt4 key购买 nike

我正在一个项目中使用 webpack、ES6 和 Babel。一个模块有一个像这样的 require 语句:

var ajaxGetJSON = require("../utils/ajaxGetJSON");

该包编译得很好,但引发了一个运行时错误

Uncaught TypeError: ajaxGetJSON is not a function

这是对 webpack 为我的模块提供的对象的检查:

enter image description here

当我将需求更改为import ajaxGetJSON from "../utils/ajaxGetJSON";时运行时错误不会发生,检查的对象应该是函数 ajaxGetJSON工作正常。

ajax模块使用export default myObject .

为什么切换到导入可以解决我的问题?

最佳答案

正如你从调试器工具提示中看到的,require() 生成一个 ES6 模块对象(这就是 babel 将模块转译成的对象),它不是一个函数,但将函数作为其 .default 属性。

ajaxGetJSON 是该模块的默认导出,您应该这样导入它。如果您使用 ES6 模块,则根本不应该使用 require

关于javascript - 为什么切换到从 require 导入可以修复运行时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35609790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com