簡體   English   中英

Visual Studio Code NodeJS 調試器使用的版本與安裝的版本不同

[英]Visual Studio Code NodeJS debugger uses different version than installed

VSCode Version:1.8.1
OS Version:Windows 10 x64 and Kali Linux x64

嘿,我正在嘗試制作使用 nodehun 模塊https://www.npmjs.com/package/nodehun 的VSCode 擴展,它使用 node-gyp 動態鏈接 hunspell 庫我在 Windows 10 上使用命令行節點:

process.version = 7.4.0 process.arch = x64

如果我嘗試使用 NodeJS 命令行界面手動使用 nodehun 方法,一切正常,但如果我嘗試在 extension.js 中使用它並通過 Visual Code 進行調試,我有:

process.version = 6.5.0 process.arch = ia32

這讓我遇到錯誤

錯誤: %1 不是有效的 win32 應用程序。

我真的不明白 VSCode 如何使用我沒有安裝的 NodeJS 版本。 同樣在 Kali linux x64 上我有:

process.version = 7.4.0 process.arch = x64

並通過 VSCode 調試擴展

process.version = 6.5.0 process.arch = x64

至少有相同的拱,所以我遇到了錯誤

錯誤:模塊版本不匹配。 預期 50,得到 51

這真的很有趣,因為沒有 node_module_version = 50,正如您在 nodejs 網站上看到的:

https://nodejs.org/en/download/releases/

6.xx 版本只有 node_module_version 48,7.xx 版本只有 51

所以我嘗試在 Windows 10 x64 npm rebuild --target=6.5.0 --arch=ia32 上重建,然后通過 VSCode 進行調試並出現錯誤

錯誤:動態鏈接庫 (DLL) 初始化例程失敗。

在 Kali linux x64 npm rebuild --target=6.5.0 然后調試

錯誤:模塊版本不匹配。 預期 50,得到 48

我認為調試設置中可能有一個技巧。 我的 launch.json 看起來像這樣:

// A launch configuration that launches the extension inside a new window

    {
        "version": "0.1.0",
        "configurations": [
            {
                "name": "Launch Extension",
                "type": "extensionHost",
                "request": "launch",
                "runtimeExecutable": "${execPath}",
                "args": ["--extensionDevelopmentPath=${workspaceRoot}" ],
                "stopOnEntry": false
            },
            {
                "name": "Launch Tests",
                "type": "extensionHost",
                "request": "launch",
                "runtimeExecutable": "${execPath}",
                "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/test" ],
                "stopOnEntry": false
            }
        ]
    }

VSCode 調試器怎么可能有我安裝並使用 node_module_version = 50 的不同 NodeJS 版本? 任何建議或解決方法如何使它工作?

VS Code 在電子內置的節點版本上運行擴展。 您可以使用模塊電子重建

 ./electron-rebuild --version="electron_version" --arch="your_vscode_architecture" --which-module="module_name_to_rebuild"

構建你的模塊:)

使用 node_pty 時, node_module_version=69也出現此錯誤。

同樣, node_module_version = 50也是電子的一個版本。 你只需要查看你當前vscode的版本信息,找到它對應的電子版本號,然后用它的版本號編譯即可。 可以參考如下命令:

set npm_config_disturl="https://atom.io/download/electron"
set npm_config_target=4.0.4
set npm_config_runtime="electron"
set npm_config_cache=~\.npm-electron
npm i
endlocal

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM