Nuxt 2.15.8静态站点部署Netlify执行npm run generate构建失败
问题原因
你遇到的 node: ../src/coroutine.cc:134: void* find_thread_id_key(void*): Assertion 'thread_id_key != 0x7777' failed 报错,是Node.js版本与Nuxt 2.15.8依赖的fibers包不兼容导致的。
Nuxt 2.15.8依赖的fibers版本仅支持Node.js 16及更低版本,Netlify当前默认构建环境使用的Node版本高于16,高版本Node移除了fibers运行所需的底层API,触发断言错误后构建进程退出,返回错误码134。
解决方案
- 方案1:锁定Netlify构建Node版本为16.x
两种配置方式任选其一即可:- 在项目根目录新建
.nvmrc文件,写入内容16,提交代码后Netlify构建时会自动读取该文件使用对应Node版本 - 在Netlify站点的构建配置页,新增环境变量
NODE_VERSION,值设置为16,保存后重新触发构建
- 在项目根目录新建
- 方案2:替换fibers兼容高版本Node
若你需要使用更高版本的Node进行构建,可以将原生fibers替换为兼容高版本Node的纯JS实现,执行命令:npm install fibers@npm:fibers-native --save
依赖替换完成后重新提交代码构建即可 - 方案3:清理构建缓存重试
若此前你已经配置过Node版本仍报错,可在Netlify部署页选择「清空缓存并重新部署」,排除旧构建缓存的node_modules版本冲突问题
内容的提问来源于stack exchange,提问作者adamb
相关产品推荐
相关产品推荐

