You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Render.com部署@fastify/static时出现Node.js核心模块fs缺失错误

问题原因与解决方案

核心原因

你遇到的Cannot find module 'node:fs'错误,本质是Render.com上运行的Node.js版本过低,不支持node:前缀的核心模块导入语法(该语法从Node.js 14.13.0版本开始才被支持)。

从错误日志里的internal/modules/cjs/loader.js:888可以推断,Render当前使用的Node.js版本大概率是12.x或更早——这类旧版本无法识别node:fs这种写法,只能识别传统的require('fs')。而你引入的@fastify/send(@fastify/static的依赖)内部使用了node:fs的导入方式,导致运行时报错。

解决步骤

方法1:通过.nvmrc文件指定Node版本

在项目根目录创建一个.nvmrc文件,内容填入你本地开发使用的Node.js LTS版本(比如v18.17.0):

v18.17.0

提交该文件到代码仓库后重新部署,Render会自动读取.nvmrc并使用对应的Node版本。

方法2:在Render控制台手动设置Node版本

  1. 进入你的Render服务页面,点击左侧的Environment选项
  2. 在Environment Variables区域,添加一个新的环境变量:
    • 变量名:NODE_VERSION
    • 变量值:填入你需要的Node版本(比如18.17.0)
  3. 保存后重新部署服务

验证

部署完成后,你可以在Render的启动日志里查看Node版本,确认是否已经切换到指定的高版本。

内容的提问来源于stack exchange,提问作者kelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:05:48