我正在使用 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/