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? 任何建议或解决方法我怎样才能使它工作?
答案 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