部署Node.js+HBS应用至Render.com遇'node:path'模块缺失错误
解决Node.js部署Render时报错:Cannot find module 'node:path'
错误详情
Error: Cannot find module 'node:path'
依赖栈:
- /opt/render/project/src/node_modules/express-handlebars/dist/express-handlebars.js
- /opt/render/project/src/node_modules/express-handlebars/dist/index.js
- /opt/render/project/src/index.js
错误原因
node:前缀是Node.js 16.x及以上版本才支持的核心模块导入语法,你的Render部署环境使用的Node版本低于16,而安装的express-handlebars新版本(v6+)已采用该语法,导致模块无法被识别。
解决方案
方案1:指定Render的Node.js版本
- 在项目根目录创建
.nvmrc文件,写入兼容的Node版本(如18或16):18 - 或在Render项目控制台的「Environment」设置中,添加环境变量
NODE_VERSION,值设为18.x或16.x。
Render会自动读取配置,使用指定版本运行项目。
方案2:降级express-handlebars
若不想升级Node版本,安装不依赖node:语法的express-handlebars v5.x版本:
npm install express-handlebars@5.3.5 --save
修改后提交package.json到仓库,Render部署时会安装该兼容版本。
验证
- 本地运行项目确认正常
- 提交修改到代码仓库
- 触发Render重新部署,检查报错是否消失
内容的提问来源于stack exchange,提问作者Dede Holsing
相关产品推荐
相关产品推荐

