使用require('')将模块消耗到我的VS Code扩展中的问题

时间:2019-05-07 20:09:09

标签: node.js jdbc visual-studio-code visual-studio-extensions azure-data-studio

从VS Code扩展包中的另一个包(针对Azure Data Studio)导入模块时,我无法使用标准的“ require”语句。我目前正在“激活”功能的开头进行调用,之前没有其他逻辑。

我确实收到一条不错的错误消息:

  

“错误:动态链接库(DLL)初始化例程失败。”

我要导入的模块来自JDBC,显然我无法加载所需的库,但是我不明白为什么。

我在想可能是问题所在。

  1. 扩展输出中未导出(包括)某些内容,因此当Azure Data Studio的新实例启动时,缺少某些依赖项。

  2. 不允许在“激活”功能内导入动态链接库,这实际上是为了与扩展上下文和/或VS Code API提供的其他功能进行交互。不知道为什么会这样。

我真的希望它更接近(1)。

我创建了一个简单的控制台应用程序,安装了相同的程序包并运行了相同的代码,并且可以正常工作。这就是为什么我希望并相信这是一个包装问题,在安装扩展程序时会丢失某些东西。

try {
        var jinst = require('jdbc/lib/jinst'); // <-- This fails when activating the extention

        if (!jinst.isJvmCreated()) {
           //Setup stuff.. 
        }      
    }
    catch (error) {
        console.error(error);
    }

我的依赖项(package.json)。

"dependencies": {
        "java": "^0.11.0",
        "jdbc": "^0.6.3"
    }

1 个答案:

答案 0 :(得分:0)

在开发VS Code扩展时,导入需要本地功能(即加载二进制文件)的模块似乎是不可行的。

https://github.com/microsoft/vscode-docs/issues/2211