1

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

我确实收到了一个很好的错误消息:

“错误:动态链接库 (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"
    }
4

1 回答 1

0

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

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

于 2019-05-12T12:45:47.607 回答