如果我在 node.js 6.6 中编写(或从 TypeScript 转换而来)这样的类:
class Table {
constructor(args) {
this._rows = new Proxy({ test: 42 }, {});
}
}
并像这样实例化它:
var table = new Table();
当我在 Visual Studio Code 1.2.1 中调试时,当我想查看 var 表时,我总是有
Internal error: illegal access
写在那里,意味着我无法观看表格或其任何属性。
同样的事情在 Chrome 中运行得非常好。
那么,这是为什么?我能做些什么呢?
谢谢!
最佳答案
对于那些先来这里的人。这确实是一个错误,但微软将其追溯到node.js 本身内部已弃用的 v8 调试代码。解决方法是在启动配置文件中使用 "type": "node2"
。这告诉 vscode 使用新的调试协议(protocol)。还建议使用 Node 7+。从 vscode 1.10 开始,对两者的支持被认为是实验性的,仅在需要时才应使用。
从 vscode 1.10 开始,“node2”代码正在与“node”合并。 "type":"node2"已被贬值,取而代之的是 "protocol"属性。如果设置为“自动”,协议(protocol)将根据运行时间确定自动切换。设置为“inspector”属性可以模拟“node2”强制使用新调试协议(protocol)的效果。默认设置相当于在 vscode 1.8.x、1.9.x 中使用 "type":"node"。
关于node.js - 调试 es6 代理作为属性 -> 内部错误 : illegal access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39710014/