Visual Studio Code NodeJS调试器使用的版本与安装版本不同

时间:2017-01-07 14:38:52

标签: node.js debugging visual-studio-code vscode-extensions

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

嘿我正在尝试使用nodehun模块制作VSCode扩展 https://www.npmjs.com/package/nodehun 使用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.x.x只有node_module_version 48,版本7.x.x只有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调试器如何可能具有我已安装的不同NodeJS版本并使用node_module_version = 50? 任何建议或解决方法我怎样才能使它工作?

2 个答案:

答案 0 :(得分:0)

VS Code在内置于电子的节点版本上运行扩展。 您可以使用模块电子重建

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

构建模块:)

答案 1 :(得分:0)

使用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