node.js - 调试 es6 代理作为属性 -> 内部错误 : illegal access

标签 node.js typescript ecmascript-6 visual-studio-code

如果我在 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/

相关文章:

mysql - 如何计算数组中对象的不同值

javascript - 你如何使用 knex.js 按顺序链接查询?

javascript - 在 PhantomJS 中从站点上的 Ajax 请求获取状态代码

javascript - 在 socket.io 中使用箭头函数

javascript - VSCode 是否应该报告从编译中排除的 TS 文件的错误?

reactjs - Next.js 中使用 TypeScript 和 HOC 的持久布局

typescript - 让 VSCode 与 TypeScript 一起工作需要什么配置?

javascript - 无法让 setter/getter 工作

javascript - 类型错误 : f is not a function after Babel Transpilation in Node

JavaScript ES6 生成器