javascript - 在 VSCode 的 NodeJs 调试器中使用 "esm"

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

我正在使用 Vscode。

我有一个 js 文件,里面有十几个类定义,我想在另一个 jsfile 中使用它们。
所以我在我的另一个文件 main.js 中使用了 es6 导入

//main.js
import * as Helper from './helperClasses.js';
var myDoggy = new Helper.Pet("Fido");

但这不会在 node 上运行,所以我用 npm 安装了“esm”,并制作了一个名为 server.js 的文件,我在其中添加了
//server.js
require = require("esm")(module/*, options*/)
module.exports = require("./main.js")

现在它使用代码运行器扩展程序运行,或者从带有 '-r esm' 参数的 cmd 窗口运行(即 node -r esm server.js )。但是在 vsCode 调试器中,我收到以下错误:
import * as helper from './helperClasses.js';
       ^

SyntaxError: Unexpected token *


我尝试如下更改 launch.json 中的配置设置,但这不起作用:
"configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}\\game.js",
            "args": ["-r","esm","server.js"]
        }
    ]

我去将 .js 扩展名更改为 .mjs,但随后智能感知停止工作......

有什么我想念的吗?这是我第一次尝试使用 Node,我只是想轻松地导入一些辅助函数。

最佳答案

我对接受的答案有疑问。使用 runtimeArgs效果更好:

    "configurations": [
        {
            "type": "node",
            "name": "import-test-files",
            "request": "launch",
            "cwd": "${workspaceFolder}",
            "program": "${workspaceFolder}/scripts/import-test-files.js",
            "runtimeArgs": ["-r", "esm"]
        }
    ]

关于javascript - 在 VSCode 的 NodeJs 调试器中使用 "esm",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57320264/

相关文章:

javascript - javascript中的 chop 单词函数(研究dojo的代码)

javascript - 我的片段有什么不同? (Node.js 新手)

node.js - 使用 AWS Lambda (nodejs) 获取 twilio 使用数据

javascript - 如何在此正则表达式中包含 - 和 '?

javascript - 尝试对 http 请求进行排队时出现 process.tick 错误

javascript - React Native 的 FlatList prop renderItem 需要额外的 "item"(item) => {item.item.name}?

node.js - Nodejs 和 socket.io 选择要广播的套接字

javascript - 我如何在 NodeJS 中模拟 ES 模块?

javascript - 与传统命名空间相比,ES6 导出/导入用例

javascript - AngularJS 标识符已声明错误(使用 `let` 语句)