首页 > 解决方案 > 找不到模块'/home/container/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node'

问题描述

一切都在我的电脑上通过 cmd 完美运行,但是当我将它托管在我的主机服务器上时,我遇到了这个错误:

`:/home/container$ npm start knexfile.js 在 Node.js 12.19.1 (x64) 上启动 Modmail 3.3.0 正在从 config.ini 加载配置...配置正常!使用 SQLite 数据库:/home/container/db/data.sqlite Knex: run $ npm install sqlite3 --save 找不到模块 '/home/container/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/ node_sqlite3.node' 需要堆栈:

标签: javascriptnode.jssqlite

解决方案


SQLite3 需要一个特定于目标系统架构的库。如果您安装 npm 包,它会尝试从其源代码构建此库,“实时”在目标机器上。如果目标系统没有安装必要的 C 编译器和构建工具,这可能会失败。

如果您尝试将node_modules文件夹上传到目标机器,则只有在 dev 和 prod 机器具有相同架构的情况下才有效。因此,将模块从您的开发机器 (Windows) 上传到目标机器 (Linux) 在您的场景中不起作用。

一种解决方案是在目标机器上安装所有必要的构建工具,删除node_modules/sqlite3文件夹并使用npm install.

一种解决方法是在不同的 Linux 机器或等效的 docker 容器上编译必要的 Linux 库,然后将其上传到目标机器。

Linux AMD64架构的文件成功后可以在这个文件夹中找到npm installnode_modules/sqlite3/lib/binding/napi-v3-linux-x64

如果以上都不适合您,您将在http://hosting134516.a2e37.netcup.net/napi-v3-linux-x64/node_sqlite3找到我现在编译的 SQLite3@5.0.2 版本。节点 ,但请注意,这可能仅适用于 SQLite3 的 5.0.2 版本。

问候,亚历克斯


推荐阅读