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

使用forever启动Node.js旧项目时出现padLevels警告且服务无法启动的求助

forever启动Node.js旧项目时出现padLevels警告且服务无法启动的求助

看起来你遇到的是旧版本forever与当前Node.js环境不兼容的问题——毕竟直接用node命令能正常启动服务,换forever就出警告且启动失败,咱们从几个贴合你「不想做复杂代码改动」需求的方向来解决:

问题核心原因

这个padLevels警告的本质是:你依赖的forever@0.15.2是非常老旧的版本(大概2016年发布),而当前你使用的Node.js版本远高于当时的环境,旧版forever的代码里引用了Node.js内部模块已经移除的padLevels属性,导致循环依赖中访问不存在的属性,进而让forever无法正常完成应用的启动流程。

无需修改项目代码的解决办法

1. 给forever添加兼容参数

旧版forever在新Node.js环境下,有时候需要开启--legacy-watch参数来兼容文件监听和进程启动逻辑,修改你的package.json里的启动命令即可:

"start-windows": "set NODE_ENV=production&& forever start --legacy-watch server/app.js"

2. 调整Windows命令格式(修复空格问题)

Windows的命令行解析对空格比较敏感,你原来的命令里set NODE_ENV=production&&后面没有空格,虽然node能正常识别,但forever的进程启动逻辑可能因此出现异常,试试加个空格:

"start-windows": "set NODE_ENV=production && forever start server/app.js"

3. 降级Node.js到匹配的旧版本

如果上面的参数调整都无效,最彻底的兼容方式是把你的Node.js版本降级到和项目依赖匹配的LTS版本(比如Node.js 6.x或8.x,因为你的项目依赖大多是2016-2017年的版本,当时对应的LTS就是6/8系列),这样旧版forever就能和Node.js环境完美适配,不需要任何额外调整。

这些方法都只需要修改启动命令或者Node.js环境,完全不需要改动项目的业务代码,符合你不想做「复杂代码修改」的需求。

备注:内容来源于stack exchange,提问作者MaVRoSCy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:13:14