为什么VSCode调试器总是将node导入显示为未定义?

5

即使导入的内容不为空,VSCode调试器始终显示导入为undefined。出现这种情况的原因是什么?我该如何解决?

在下面的示例中,“Lot”变量已经被导入并且通过console.log行的结果表明它不是undefined,但是当我在调试器中手动输入“Lot”时,它却显示为undefined。

带有调试器和代码的截图

示例代码:

import Lot from '../db/models/Lot'

console.log(Lot === undefined) // prints false
console.log("break") // Debugger stopped at this breakpoint shows Lot as undefined 


如果我将Lot分配给一个本地变量,那么它就可以工作:
const Lot2 = Lot
console.log("break") // Debugger stopped at this breakpoint shows Lot2 as defined


你最终解决了这个问题吗?我也遇到了完全相同的行为,我在我的帖子中还有其他变量:https://stackoverflow.com/questions/65932801/error-object-in-vue-async-catch-block-is-undefined-in-debugger - A_L
不好意思,如果我知道我需要在调试时访问一个导入,我只是使用我上面描述的hack,即将其分配给一个本地变量。 - Alex Long
1个回答

5
我找到了相关信息:在调试器窗口的“Closure”部分中,您应该发现导入的模块名称后面有“_1”,然后您可以使用“Lot_1.Lot”访问它。此帖子表明,当编译器选项低于ES6时会发生这种情况。

啊,谢谢你,那真是太有帮助了。对我来说,import { Instance } from … 在我的应用程序中与其他东西一起使用的时候,落在了闭包部分作为 _instance.Instance。也就是说,它以下划线为前缀,并且在名称开头小写(而不是在名称后面添加 _1)。 - samjewell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接