VSCode Version:1.8.1
OS Version:Windows 10 x64 and Kali Linux x64
Привет, я пытаюсь создать расширение VSCode, которое использует модуль nodehun https://www.npmjs.com/package/nodehun, который динамически связывает библиотеку hunspell с помощью node-gyp, которую я использую в Windows 10, с помощью узла командной строки:
process.version = 7.4.0 process.arch = x64
Если я попытаюсь использовать методы nodehun вручную с помощью интерфейса командной строки NodeJS, все будет работать нормально, но если я попытаюсь использовать его в 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/
есть только node_module_version 48 для версий 6.x.x и 51 для версий 7.x.x.
Поэтому я попытался перестроить с помощью 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? Любые предложения или обходной путь, как я могу заставить его работать?