问题描述
我在 x64 架构上使用 Windows 10 专业版。
我正在尝试使用 pkg
作为 x86 EXE
来编译我的 NodeJS 项目。我发现 pkg
的问题是它没有将 *.node
文件链接到输出文件中。
我的项目使用 sqlite3
和 ffi-napi
/ref-napi
。由于我在 x64 系统上,npm 会自动将这些包构建到 win32-x64 .node
文件中。我了解到我可以使用
npm install package_name --build-from-source --target_platform=win32 --target_arch=ia32
这将为每个包准备 ia32
(x86) 版本的 .node native add-on
。
现在,当我编译我的项目
pkg core.js --targets=node14-win-x86
Error: No native build was found for platform=win32 arch=ia32 runtime=node abi=72 uv=1 libc=glibc node=12.18.1
loaded from: C:\snapshot\core\node_modules\ref-napi
我了解到这样做的原因是链接器从未将 ref-napi .node native add-on
包含到我的项目中。这样做可以缓解这种情况
yarn add ref-napi
这是我的问题出现的地方,在此命令完成后,我执行我的应用程序
Error: Cannot find module 'C:\snapshot\core\node_modules\sqlite3\lib\binding\napi-v3-win32-ia32\node_sqlite3.node'
Require stack:
- C:\snapshot\core\node_modules\sqlite3\lib\sqlite3-binding.js
- C:\snapshot\core\node_modules\sqlite3\lib\sqlite3.js
- C:\snapshot\core\core.js
这是因为在yarn
的执行过程中,看到我的系统架构是x64
。然后它从上面执行 ia32 .node
时删除先前编译的 npm install
文件,并在其位置放置一个 win32-x64 .node
文件。
我的问题是 - 如何让 yarn 下载 ia32 .node
插件而不是 win32-x64
?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)