You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用esbuild打包Express/Sequelize/SQLite应用的SQLite模块问题

补充说明

关于Sequelize的问题已查明:网关维护者指向了旧端点,导致返回结果异常,我自身也未直接测试应用、未监控日志,对此负有责任。

但SQLite模块的问题仍未解决,希望有人能提供思路,哪怕结论是“因XX原因无法实现”。

原问题描述

为避免node_modules占用约200MB存储空间,我尝试用esbuild打包Express应用,但遇到Sequelize和SQLite3模块的问题,其中SQLite3问题如下:

SQLite相关问题

打包后的.js文件未包含SQLite3模块。我尝试显式引入该模块并传入Sequelize实例的dialectModule:属性,解决依赖问题后出现以下错误:

Error: express-api-starter-ts package.json is not node-pre-gyp ready:
package.json must declare these properties:
binary
    at Object.gRe [as validate_config] (path\dist\index.js:137:219)
    at HM.find (path\dist\index.js:404:8282)
    at path\dist\index.js:406:166
    at path\dist\index.js:1:356
    at path\dist\index.js:411:108
    at path\dist\index.js:1:356
    at Object.<anonymous> (path\dist\index.js:413:12918)
    at Module._compile (node:internal/modules/cjs/loader:1241:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)

我还尝试将node_sqlite3编译为.node文件,用esbuild默认的.node loader传入该属性,却出现this.lib.Database is not a constructor错误。

目前临时方案是在服务器安装该模块,虽能运行但不符合预期。

Sequelize相关问题(已解决)

曾发现REST接口返回结果未遵循Sequelize定义的模型结构,代码中定义的小写字段名,返回结果却是数据库中的大写字段名,后查明是网关问题。

求助

希望有过类似经历的人提供解决方案。我使用的打包命令为:

esbuild src/index.ts --platform=node --loader:.node=file --bundle --minify --outfile=dist/index.js

内容的提问来源于stack exchange,提问作者lsimonetii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:43:21