在VSCode中为extensionHost调试器类型更改Node.js版本

时间:2018-02-16 11:09:08

标签: node.js visual-studio-code oracledb-npm

我正在开发一个VSCode扩展,它通过oracledb npm

查询Oracle数据库实例

vscode-database延期被视为基础。

安装的节点版本是8.9.4。检查与Oracle的连接的测试脚本可以正常工作:

-> node -v
8.9.4
-> node connect.js
ok

但是当我尝试使用相同的连接脚本调试VSCode扩展时,我收到错误:

  

激活扩展bajdzis.vscode-database失败:NJS-045:无法加载Node.js 7.9.0(win32,x64)的oracledb附加二进制文件

错误说Node.js 7.9.0正在使用,而不是8.9.4。我假设7.9.0 - 是VSCode调试器使用的一些内部Node实例。

是否可以使VSCode调试器使用安装在开发人员计算机上的Node版本,而不是内部版本?

1 个答案:

答案 0 :(得分:0)

虽然不可能使VS Code调试器使用不同版本的Node.js,但可以为Node.js的目标版本编译本机模块(如node-oracledb)。以下是some details

对于VS Code 1.21.1(使用Electron 1.7.0),我从扩展目录中的终端执行了以下操作(可能需要先从oracledb删除node_modules目录):

# Electron's version.
export npm_config_target=1.7.0
# The architecture of Electron, can be ia32 or x64.
export npm_config_arch=x64
export npm_config_target_arch=x64
# Download headers for Electron.
export npm_config_disturl=https://atom.io/download/electron
# Tell node-pre-gyp that we are building for Electron.
export npm_config_runtime=electron
# Tell node-pre-gyp to build module from source code.
export npm_config_build_from_source=true
# Install all dependencies, and store cache to ~/.electron-gyp.
HOME=~/.electron-gyp npm install

最后一行启动了npm安装,它正确地为目标平台编译了二进制文件(Node.js 7.9.0的自定义版本,其版本比V8的版本通常高于Node.js)。< / p>