微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

YARN 构建 ia32 依赖项

如何解决YARN 构建 ia32 依赖项

我在 x64 架构上使用 Windows 10 专业版

我正在尝试使用 pkg 作为 x86 EXE 来编译我的 NodeJS 项目。我发现 pkg 的问题是它没有将 *.node 文件链接输出文件中。

我的项目使用 sqlite3ffi-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

并运行输出core.exe,我得到以下输出

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 举报,一经查实,本站将立刻删除。