【问题标题】:Visual Studio Code, Block-scoped declarationsVisual Studio Code,块范围的声明
【发布时间】:2018-01-21 01:14:03
【问题描述】:

我想在 Visual Studio Code 中使用调试,但由于我的代码充满了 const 声明,我无法运行它 - 我收到错误:

块范围的声明(let, const, function, class)还没有 支持外部严格模式

是否存在任何解决方法,配置文件设置或其他什么?目前,我的配置文件如下所示:

"version": "0.2.0",
"configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "Launch Program",
        "program": "${workspaceRoot}/server.js"
    }
]

我看过关于“使用严格”行的帖子,但我正在徘徊是否有其他解决方案,除了将这些语句放在所有文件中

【问题讨论】:

  • 你安装的是什么版本的node?所有仍受支持的 Node 版本(即 4.0.0 或更高版本)应支持严格模式之外的 ES6 letconst 语句。因此,我怀疑您的 Node 版本较旧且不受支持,如果可能,我建议您升级。
  • 它显示了 4.2.6
  • 你在使用 vscode 运行时是否看到了这种情况,而在手动运行时却没有? vscode 所做的只是在你的路径上调用node。所以可能是 vscode 正在寻找不同版本的节点。否则,除了在 vscode 中运行之外,你是如何运行你的程序的?
  • @RobLourens,从我的配置中可以看出,我只设置了 server.js 文件的路径。相反,在我的 package.json 中,开始看起来像这样:“start”:“nodemon --exec babel-node server.js --ignore public/”。也许 babel-node 是我可以在没有严格模式的情况下运行 npm start 的原因?我不确定:)

标签: javascript visual-studio-code


【解决方案1】:

您在上面说您通常从 npm 脚本启动应用程序:"start": "nodemon --exec babel-node server.js --ignore public/"。 Babel 正在编译你的代码并且可能插入了"use strict"。要在 vscode 中调试它,您应该调用相同的命令。

有几种设置方法,一种是按照此处的示例进行操作:https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_launch-configuration-support-for-npm-and-other-tools,将调试参数添加到您的 npm 脚本,然后将启动配置指向 npm 脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多