无服务器部署错误:找不到模块“/Users/.../--max-old-space-size=2048”

问题描述

当我使用 sls offline start 运行它时,我的无服务器项目在本地运行良好,但是当我尝试使用 serverless deploy 通过命令行部署它时,我收到以下错误堆栈。

internal/modules/cjs/loader.js:1030
  throw err;
  ^

Error: Cannot find module '/Users/rasikraj/Desktop/aws-social/--max-old-space-size=2048'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:1027:15)
    at Function.Module._resolveFilename (pkg/prelude/bootstrap.js:1346:46)
    at Function.Module._load (internal/modules/cjs/loader.js:896:27)
    at Function.Module.runMain (pkg/prelude/bootstrap.js:1375:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',requireStack: []
}

可能导致此问题的原因是什么,我该如何解决

我正在使用 无服务器版本:

Framework Core: 2.19.0 (standalone)
Plugin: 4.4.2
SDK: 2.3.2
Components: 3.4.7

节点 v12.20.1 和打字稿

和这个样板 https://github.com/AnomalyInnovations/serverless-typescript-starter

解决方法

它对我有用:

1 - 使用 yarn 或 npm 将无服务器安装为 devDependency

yarn add serverless -D

2 - 再次运行部署命令

sls deploy

3 - 如果错误仍然存​​在,请查看您的包 json 并检查无服务器是否作为 devDependency。如果它是正常的依赖项,您可以将其移动到 devDependency

5 - 删除 node_modules 并运行命令:

yarn

npm install
,

正如消息所述,它正在“/Users/rasikraj/Desktop/aws-social/--max-old-space-size=2048”寻找一个模块。

该错误是有道理的,因为您在 --max-old-space-size=2048 目录中实际拥有名为 aws-social 的文件的几率非常低。

对我来说,文件名 --max-old-space-size=2048 看起来非常适合作为某些东西的命令行参数。