【问题标题】:A dynamic link library (DLL) initialization routine failed | nw.js error connecting canvas动态链接库 (DLL) 初始化例程失败 | nw.js 错误连接画布
【发布时间】:2022-01-30 12:29:11
【问题描述】:

我使用 nw.js 并尝试连接画布模块 (node-canvas) 时,出现此错误。安装不同版本的节点/画布没有帮助。出现错误时 require('canvas') 错误图片: Error

Uncaught Error: A dynamic link library (DLL) initialization routine failed.
\\?\N:\BOTSer\Protocol\node_modules\canvas\build\Release\canvas.node
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1224:18)
    at Module.load (node:internal/modules/cjs/loader:999:32)
    at Function.Module._load (node:internal/modules/cjs/loader:846:12)
    at Module.require (node:internal/modules/cjs/loader:1023:19)
    at require (node:internal/modules/cjs/helpers:97:18)
    at Object.<anonymous> (N:\BOTSer\Protocol\node_modules\canvas\lib\bindings.js:3:18)
    at Module._compile (node:internal/modules/cjs/loader:1121:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1179:10)
    at Module.load (node:internal/modules/cjs/loader:999:32)
    at Function.Module._load (node:internal/modules/cjs/loader:846:12)
    ```

【问题讨论】:

    标签: javascript canvas node-webkit


    【解决方案1】:

    该模块需要与您的全局安装的 Node.js 兼容的本机构建。如果 NW.js 中的 Node 版本与您的全局安装不匹配,则构建的二进制文件将无法使用它。当您切换全局 Node.js 安装版本以匹配 NW.js 中内置的内容时,事情总是会更好。您可以使用nvm-windowsnvm 来控制您的全局节点版本,只需确保在使用节点版本管理器之前先卸载Node.js,这样您就不会有两个冲突的全局安装。您可以通过运行console.log(process.version); 来检查 NW.js 中的 Node.js 版本。

    如果我的假设是正确的,那么:

    1. 打开您的应用,右键单击 > 检查 > 控制台 > process.version > 记下您需要的 Node 版本 > 关闭您的应用。
    2. 删除node_modulespackage-lock.json
    3. 全局卸载 Node.js
    4. 为您的操作系统安装正确的节点版本管理器
    5. 使用节点版本管理器安装您在步骤 1 中记下的版本
    6. 在您的项目中新建一个npm install,然后再次尝试运行它

    虽然我很困惑为什么你会在 NW.js 中使用本机 canvas 模块。为什么要使用内置画布的应用程序打包整个浏览器,然后再引入第二个工具并使用它呢?只需使用浏览器的画布即可。

    【讨论】:

    • 确实,node.js 的版本是 17.4.0,而 nw.js 的版本是 17.3.0。重新安装了节点 version.js(重新启动)并重新安装了所有模块,但是唉 - 错误并没有消失。为什么我使用自己的画布模块 - 我缺少诸如 LoadImage 和 toBuffer 之类的功能。
    • 我看到了同样的问题(NW.js 0.60.0,Node.js 17.3.0)。有时,Node 的原生构建是使用 Node-GYP 构建的,并且与 NW.js 不兼容,而是需要使用 NW-GYP 重新构建。更多细节在这里:dev.to/thejaredwilcurt/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2016-07-01
    • 2018-02-03
    • 2020-06-13
    • 1970-01-01
    相关资源
    最近更新 更多