Better-sqlite3 自定义配置

来自泡泡学习笔记
跳到导航 跳到搜索

如果你想使用better-sqlite3的自定义版本,可以在安装时指定你的自定义amalgamation目录。

npm install better-sqlite3 --build-from-source --sqlite3=/path/to/sqlite-amalgamation


但是,如果你在better-sqlite3作为package.json中的依赖项运行时运行npm install,上述所需的标志将不会应用。因此,建议从依赖列表中删除better-sqlite3,并添加一个类似于下面的preinstall脚本。

{
  "scripts": {
    "preinstall": "npm install better-sqlite3@'^7.0.0' --no-save --build-from-source --sqlite3=\"$(pwd)/sqlite-amalgamation\""
  }
}


你的amalgamation目录必须包含sqlite3.csqlite3.h。任何所需的编译时选项必须在sqlite3.c中直接定义,如下所示。

// 这些放在文件顶部
#define SQLITE_ENABLE_FTS5 1
#define SQLITE_DEFAULT_CACHE_SIZE 16000

// ... 文件内容保持不变


分步示例

如果你创建一个依赖于better-sqlite3自定义构建的包,可以按照以下步骤开始。

  1. 从其网站下载SQLite3源代码(例如,sqlite-amalgamation-1234567.zip
  2. 解压缩压缩文件
  3. sqlite3.csqlite3.h文件移动到项目文件夹
  4. package.json中添加一个preinstall脚本,如上所示
  5. 确保--sqlite3标志指向您的sqlite3.csqlite3.h文件的位置
  6. sqlite3.c顶部定义您喜欢的编译时选项
  7. 确保从您的dependencies中删除better-sqlite3
  8. 在项目文件夹中运行npm install


如果你正在使用SQLite3加密扩展(例如SEEsqleet),那么只需用您的加密扩展的源文件替换sqlite3.csqlite3.h即可。