VSCode 扩展:命令“Hello World”导致错误(未找到命令“vscode-err-reproduct.helloWorld”)

Sha*_*lam 2 visual-studio-code vscode-extensions

问题描述:

我尝试使用文档中提供的示例扩展(yo代码)创建 VS Code 扩展。我在创建它时选择了“typescript”作为扩展类型。当我尝试运行扩展时,收到一条错误消息。

Command 'Hello World' resulted in an error (command 'vscode-err-reproduce.helloWorld' not found)
Run Code Online (Sandbox Code Playgroud)
Activating extension 'undefined_publisher.vscode-err-reproduce' failed: Cannot find module
 '/oct/vscode-extn-ts-error/vscode-err-reproduce/out/extension.js' Require stack: - /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/loader.js - /Applications/Visual Studio Code.app/Contents/Resources/app/out/bootstrap-amd.js - /Applications/Visual Studio Code.app/Contents/Resources/app/out/bootstrap-fork.js.
Run Code Online (Sandbox Code Playgroud)

tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "ES2020",
        "outDir": "out",
        "lib": [
            "ES2020"
        ],
        "sourceMap": true,
        "rootDir": "src",
        "strict": true   /* enable all strict type-checking options */
        /* Additional Checks */
        // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
        // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
        // "noUnusedParameters": true,  /* Report errors on unused parameters. */
    },
    "exclude": [
        "node_modules",
        ".vscode-test"
    ]
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*lam 12

该错误是由于编译未运行或在扩展启动时未能运行所致。因此 .js 文件不会在 /out/* 目录上创建

  1. 我通过从根目录手动运行 tsc --watch 解决了这个问题。
  2. 我认为,默认情况下扩展的启动会触发编译,但事实并非如此。
  3. 产品文档称,“按 F5。这将在新的扩展开发主机窗口中编译并运行扩展。” 然而,对我来说情况并非如此。不确定,它实际上失败在哪里。
  4. 我已经向 Microsoft 提出了针对此问题的错误。

https://github.com/microsoft/vscode-extension-samples/issues/510