在VS Code中调试当前文件

jdb*_*b79 28 javascript visual-studio-code

我正在写javascript,目前正在做简单的练习/程序.有时,我希望运行我的文件进行测试.我知道我可以创建一个HTML文件并在控制台中执行此操作.在Sublime中,存在一种"构建"当前文件并立即查看结果的方法(比如,发送到console.log的任何内容).

使用VS Code,似乎对于我想以这种方式"构建"/调试的每个文件,我必须手动更改launch.json文件以反映当前程序的名称.

我一直在研究解决这个问题的方法,并且我了解到有类似的变量${file},但是当我在launch.json"program"属性中使用它时,例如:

"program": "${workspaceRoot}/${file}"
Run Code Online (Sandbox Code Playgroud)

有或没有该workspaceRoot部分,我收到以下错误:

Attribute "program" does not exist" (file name here). 
Run Code Online (Sandbox Code Playgroud)

我错过了一个简单的方法来完成这个,或者launch.json每次我想运行文件时都必须继续编辑?

提前致谢!

小智 74

改成:

"program": "${file}"
Run Code Online (Sandbox Code Playgroud)

  • 我有时也会添加`“ cwd”:“ $ {fileDirname}”`使其在当前文件的文件夹中启动(例如,当使用相对于当前文件位置的相对路径加载文件时,很有用-例如:`fs.readFile( './somefile.txt')`) (2认同)
  • 我不明白为什么 VSCode 手册中没有提到这一点,也没有任何章节提到这些变量。或者说,即使有,也隐藏得很好。 (2认同)

Ric*_*fer 24

作为参考,这是完整的launch.json

{
    "version": "0.2.0",
    "configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "Debug File",
        "program": "${file}"
    }
    ]
}
Run Code Online (Sandbox Code Playgroud)


Kyl*_*Mit 9

您可能需要通过多种不同的方式来访问预定义变量提供的文件 :

假设您有以下需求:

  • /home/your-username/your-project/folder/file.ext位于编辑器中打开的文件;
  • 该目录/home/your-username/your-project作为根工作空间打开。

因此,每个变量将具有以下值:

  • ${userHome}-/home/your-username
  • ${workspaceFolder}-/home/your-username/your-project
  • ${workspaceFolderBasename}-your-project
  • ${file}-/home/your-username/your-project/folder/file.ext
  • ${fileWorkspaceFolder}-/home/your-username/your-project
  • ${relativeFile}-folder/file.ext
  • ${relativeFileDirname}-folder
  • ${fileBasename}-file.ext
  • ${fileBasenameNoExtension}-file
  • ${fileDirname}-/home/your-username/your-project/folder
  • ${fileExtname}-.ext
  • ${lineNumber}- 光标的行号
  • ${selectedText}- 在代码编辑器中选择的文本
  • ${execPath}- Code.exe 的位置
  • ${pathSeparator}-/在 macOS 或 Linux 上,\在 Windows 上