使用Prismic+NextJS初始化SliceMachine触发triggerUncaughtException错误求助
解决Slice Machine初始化时的SSL协议错误(AxiosError: write EPROTO)
问题分析
这个错误源于Node.js默认禁用了不安全的SSL旧版协商机制(final_renegotiate),而Slice Machine初始化时的请求依赖了相关SSL配置,导致请求连接失败。
解决方法
1. 临时启用SSL旧版协商(快速修复)
运行初始化命令时,通过Node.js环境变量开启旧版SSL支持:
NODE_OPTIONS="--openssl-legacy-provider" npx @slicemachine/init@latest
针对指定版本执行:
NODE_OPTIONS="--openssl-legacy-provider" npx @slicemachine/init@1.1.17
2. 调整Node.js版本
如果使用的是Node.js v18+版本,对SSL协议的限制更严格,可尝试降级到v16.x LTS版本,或者升级到最新稳定版,部分版本会优化SSL协商兼容性。
3. 手动初始化Slice Machine
自动初始化失败时,手动完成配置流程:
- 安装核心依赖:
npm install @slicemachine/adapter-next @prismicio/client @prismicio/next
- 在项目根目录创建
slicemachine.config.json,填入你的Prismic仓库信息:
{ "repositoryName": "你的Prismic仓库名称", "adapter": "@slicemachine/adapter-next", "libraries": ["./slices"] }
- 启动Slice Machine:
npx slicemachine start
内容的提问来源于stack exchange,提问作者Sushant
相关产品推荐
相关产品推荐

