「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"
]
},
修改 webpack.config.js
"externals": {
"ffi-napi": "require('ffi-napi')",
"ref-napi": "require('ref-napi')"
}
如上配置之后 .exe 在windows环境可以启动起来。
liunx上可能类似会出现如下问题:
Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /root/test/离线é
gcc的动态库是旧版本的原因。 网上这个解决办法多,可自行搜索。
或参考解决办法: www.cnblogs.com/kumufengchu…
转载自:https://juejin.cn/post/7066331282791694350