Serverless Stack Windows环境执行npm run start报Maximum call stack size exceeded错误
Windows 10 环境 Serverless Stack 启动栈溢出问题排查方案
问题根因
该报错是SST旧版本的Windows路径兼容缺陷:getManager函数递归向上查询包管理器配置文件时,没有适配Windows盘符根目录的终止逻辑,触发无限递归导致栈溢出,类Unix系统的路径根目录判断逻辑正常因此不会触发该问题。
报错堆栈如下:
RangeError: Maximum call stack size exceeded
at Object.resolve (path.js:153:10)
at getManager (D:\Sources\demo-notes-app\node_modules@serverless-stack\core\dist\packager\packager.js:48:38)
... 重复递归堆栈
排查步骤
- 第一步:确认SST版本,低于v1.18.0的版本均存在该兼容问题,执行
npx sst version查看当前版本 - 第二步:优先执行版本升级修复,在项目根目录执行如下命令升级到最新稳定版:
npm install @serverless-stack/cli@latest @serverless-stack/resources@latest - 第三步:若暂时无法升级版本,可手动指定包管理器规避问题:
旧版本在sst.json中添加配置项:
新版本在{ "packager": "npm" }sst.config.ts的配置参数中添加:export default { config(_input) { return { // 其他原有配置 packager: "npm" } }, // 其他原有逻辑 } - 第四步:检查项目存放路径,避免放在网络共享盘、OneDrive同步目录、虚拟映射盘符下,也不要使用包含中文、空格、特殊字符的路径,迁移到纯英文的本地物理盘路径重试
- 第五步:验证Node.js版本兼容性,Node 14已停止官方维护,新版SST不再支持该版本,可使用nvm-windows切换到Node 16或Node 18的LTS版本重试
内容的提问来源于stack exchange,提问作者ff8mania
相关产品推荐
相关产品推荐

