Meteor构建后运行报错:primordials is not defined 求助
解决Meteor构建后运行
node main.js出现primordials is not defined错误 问题原因
这个错误源于你使用的Node.js版本与Meteor打包后项目依赖的旧版graceful-fs不兼容。旧版graceful-fs依赖Node.js内部已移除的primordials变量,当Node.js版本≥12时就会触发该报错。升级gulp无法解决问题,因为冲突出现在服务端的graceful-fs依赖上。
解决方案
方案1:锁定兼容的graceful-fs版本
- 进入构建后的
output/programs/server目录 - 打开
package.json,将graceful-fs的版本锁定为^4.2.10(该版本兼容Node.js 12+,如果package.json中没有显式声明,手动添加到dependencies字段) - 删除该目录下的
node_modules文件夹和package-lock.json文件 - 重新执行:
npm install --production
- 返回
output/bundle目录,再次运行node main.js
方案2:切换到Meteor兼容的Node.js版本
Meteor不同版本对应特定的Node.js版本:
- 查看项目使用的Meteor版本匹配的Node.js版本(比如Meteor 2.0+对应Node.js 14/16,Meteor 1.12对应Node.js 12)
- 使用Node版本管理器(如nvm)切换到对应版本后,再运行
node main.js
内容的提问来源于stack exchange,提问作者Jood jindy
相关产品推荐
相关产品推荐

