Botpress v12本地搭建遇依赖与Node版本不兼容问题求助
解决Botpress v12在M2 Mac上的构建依赖问题
核心问题梳理
Botpress v12的package.json指定Node引擎为^12,但部分依赖(如@jest/types@29.x)已停止支持Node12;强制忽略引擎限制后,又遇到sqlite3@4.2.0无ARM64预编译二进制的问题(适配M2芯片)。
可行解决方案
方案1:锁定兼容依赖版本(推荐,适配Node12环境)
- 在项目根目录的
package.json中添加完整resolutions配置,覆盖所有不兼容的依赖:
说明:@jest/types@27.x是最后支持Node12的版本;sqlite3@5.1.6开始提供ARM64预编译二进制,解决M2芯片的编译问题。"resolutions": { "@jest/types": "^27.5.1", "jest": "^27.5.1", "sqlite3": "^5.1.6" } - 清除缓存后重新安装依赖:
yarn cache clean yarn install --force - 执行构建命令:
yarn build
方案2:使用Docker隔离环境(最省心,无需调整本地依赖)
- 拉取Botpress v12官方兼容镜像:
docker pull botpress/server:v12 - 启动容器并映射端口:
docker run -d -p 3000:3000 botpress/server:v12 - 访问
http://localhost:3000即可使用Botpress。
方案3:本地编译sqlite3(备选,坚持使用Node12环境)
- 降级Yarn至更兼容旧依赖的版本:
yarn set version 1.22.10 - 通过brew安装sqlite3本地编译依赖:
brew install python@3.9 make gcc - 强制本地编译sqlite3:
yarn add sqlite3@4.2.0 --build-from-source --ignore-scripts=false - 重新执行构建:
yarn build
注意事项
- Botpress v12为停止维护的旧版本,长期使用建议升级至v13+版本
- M2芯片的ARM64架构对旧npm包的预编译支持有限,优先选择提供ARM二进制的依赖版本
内容的提问来源于stack exchange,提问作者Phani Gopaluni
相关产品推荐
相关产品推荐

