sqlite3不起作用的原因

 npm install --global --production windows-build-tools

sqlite3不起作用的原因有三:
1.当使用npm install sqlite3安装节点sqlite3时,它获取所有依赖项并安装它。然后获取目标架构和平台的预编译二进制绑定文件。在我的例子中,我们希望napi-v6-darwin-unknown-arm64用于ARM 64,达尔文用于Apple M1。目前还没有可用于此Apple ARM 64的预编译二进制文件,即使有,下一段将详细说明为什么它仍然不起作用。
1.问题在于,它使用二进制编译包node-pre-gyp来确定系统的平台和架构,而这正是Github issue的救星,它详细说明了node-pre-gyp如何无法正确处理ARM架构检测,基本上将所有内容都搞混了。因为它无法正确检测,即使我们在安装时构建自己的--build-from-source绑定,它仍然无法工作,因为它为错误的架构编译了错误的绑定文件。更糟糕的是,如果我们不使用--build-from-source,它只是简单地获取Intel预编译的绑定文件。napi-v6-darwin-unknown-x64
1.由于某种原因,在运行时,它现在可以正确检测架构,并尝试查找绑定文件的ARM 64版本,但它找不到,并将抛出napi-v6-darwin-unknown-arm64的"module not found“错误。显然,它找不到,即使找到了,也将抛出错误的架构错误,因为我们在napi-v6-darwin-unknown-x64板上安装了英特尔版本。
经过4天的努力,我终于找到了工作:
1.卸载sqlite3:npm uninstall sqlite3
1.安装一个全新的sqlite3,从源代码构建它,指定目标arch,并使用带有node-pre-gyp的回退构建,以确保安全:npm install sqlite3 --build-from-source --target_arch=arm64 --fallback-to-build
1.现在,已针对正确的平台和架构编译了正确的绑定文件,在运行时它将找到并运行!

 

 

 

    1. 安装windows-build-tools
      npm install --g --production windows-build-tools

    2. 删掉lock文件、node_modules重新执行npm install / yarn 安装依赖
      npm install

posted on 2023-12-21 08:54  呗儿  阅读(73)  评论(0编辑  收藏  举报

导航