likes
comments
collection
share

「NodeJS」引用ffi-napi 模块,pkg 打包成功,启动却不成功

作者站长头像
站长
· 阅读数 22

错误信息截图: 「NodeJS」引用ffi-napi 模块,pkg 打包成功,启动却不成功

因项目中需要编译c++文件,之前一直使用ffi模块, 缺点就是node不能升级高版本 一直是node8 ,我实际开发起来因为低版本node 迁就的太多了,实在是忍受不了,所以为了可扩展,更好的使用新技术,决心要找到 ffi 的替换方案,找到ffi-napi

ffi 替换方案 ffi-napi

在使用ffi-napi的时候 对于 ffi可直接替换,开发过程中没有任何问题。但在使用pkg 打包的生成.exe 启动的时候窗口出现闪退。 在liunx上运行出现上面图片错误信息, 首先确认是ffi-napi模块的原因。

解决办法

修改 package.json

  "pkg": {
    "scripts": [],
    "assets": [
      "node_modules/ffi-napi/**",
      "node_modules/ref-napi/**",
      "fonts/**"
    ],
    "targets": [
      "node14-win"
    ]
  },

「NodeJS」引用ffi-napi 模块,pkg 打包成功,启动却不成功

修改 webpack.config.js

    "externals": {
        "ffi-napi": "require('ffi-napi')",
        "ref-napi": "require('ref-napi')"
    }

「NodeJS」引用ffi-napi 模块,pkg 打包成功,启动却不成功

如上配置之后 .exe 在windows环境可以启动起来。

liunx上可能类似会出现如下问题:

Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /root/test/离线é

「NodeJS」引用ffi-napi 模块,pkg 打包成功,启动却不成功

gcc的动态库是旧版本的原因。 网上这个解决办法多,可自行搜索。

或参考解决办法: www.cnblogs.com/kumufengchu…