ple*_*hat 7 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");
Run Code Online (Sandbox Code Playgroud)
但这不会在 node 上运行,所以我用 npm 安装了“esm”,并创建了一个名为 server.js 的文件,我在其中添加了
//server.js
require = require("esm")(module/*, options*/)
module.exports = require("./main.js")
Run Code Online (Sandbox Code Playgroud)
现在它与代码运行器扩展一起运行,或者从带有“-r esm”参数的 cmd 窗口运行(即node -r esm server.js)。但是在 vsCode 调试器中,我收到以下错误:
import * as helper from './helperClasses.js';
^
SyntaxError: Unexpected token *
Run Code Online (Sandbox Code Playgroud)
我尝试按如下方式更改 launch.json 中的配置设置,但这不起作用:
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}\\game.js",
"args": ["-r","esm","server.js"]
}
]
Run Code Online (Sandbox Code Playgroud)
我去将 .js 扩展名更改为 .mjs,但随后智能感知停止工作......
有什么我想念的吗?这是我第一次尝试使用 Node,我只是想轻松地导入一些辅助函数。
Dav*_*ner 26
我对接受的答案有疑问。使用runtimeArgs效果更好:
"configurations": [
{
"type": "node",
"name": "import-test-files",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/scripts/import-test-files.js",
"runtimeArgs": ["-r", "esm"]
}
]
Run Code Online (Sandbox Code Playgroud)
小智 0
你的 launch.json 必须是
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}\\server.js",
"args": ["-r","esm"]
}
]
Run Code Online (Sandbox Code Playgroud)
不过,server.js 的路径必须准确。例如,如果它位于文件夹“app”下,请使其
"program": "${workspaceFolder}\\app\\server.js"
让我们知道它是否有帮助或者问题是否仍然存在。
| 归档时间: |
|
| 查看次数: |
2160 次 |
| 最近记录: |