Skip to content

[Windows][CLI] v1.3.5 MSI 中的 CLI 无法解析 better-sqlite3,导致原生 SQLite 不可用 #658

Description

@CL-SC552

环境

ReadAny Desktop:v1.3.5

Windows 安装包:ReadAny_1.3.5_x64_en-US.msi

ReadAny CLI:v0.1.0

Windows 版本:Windows 11 x64

Node.js:v24.13.0

问题描述

通过官方 Windows MSI 安装 ReadAny,并解决 CLI 入口路径问题后,Bundle/安装目录中的 ReadAny CLI 仍无法解析运行数据访问所需的 better-sqlite3。

因此,CLI 虽然能够启动,但原生 SQLite 功能不可用,无法正常读取现有书库。

复现步骤

在 Windows 上使用官方 v1.3.5 MSI 全新安装 ReadAny。

确认 Node.js 已安装并可用。

使用安装包提供的 ReadAny CLI 运行 doctor。

执行最小书库查询。

实际结果

安装目录中的 CLI 无法解析可用的 better-sqlite3,原生 SQLite 检查无法通过,书库查询不能正常工作。

官方 MSI 安装完成后,用户仍需自行进入 CLI 目录安装依赖。

预期结果

官方 Windows 安装包提供的 CLI 应具备完整、可直接运行的数据访问依赖:

doctor 应确认原生 SQLite 可用;

不应要求普通用户手动安装 npm 依赖;

最小书库查询应在安装后直接工作。

如果 CLI 需要使用系统 Node.js,也应在界面或文档中明确说明受支持的 Node.js 版本和原生模块安装方式。

已验证的临时解决办法

在 ReadAny CLI 目录中补充安装与 v1.3.5 依赖清单一致的:

better-sqlite3@12.10.1

安装到类似以下位置:

D:\Programs\readany-cli\node_modules

补充依赖后:

doctor 返回 nativeSqliteAvailable: true;

最小书库查询成功;

没有修改 ReadAny 数据库。

建议

建议检查 Windows MSI 的 CLI 打包过程,确认:

better-sqlite3 是否被遗漏;

原生二进制文件是否与随附或要求的 Node.js ABI 匹配;

CLI 是否应使用应用内置运行时,而不是依赖用户自行安装的 Node.js;

更新安装是否会覆盖用户手动补充的依赖。

如果该依赖有意不随安装包提供,建议让 doctor 和设置界面明确显示缺失的包、推荐版本及安装位置,而不是只显示 CLI 不可用。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions