错误:找不到模块“ /workspace/server.js”

时间:2020-08-27 01:55:46

标签: node.js reactjs google-app-engine

enter image description here我正在尝试将开发的create-react-app https://github.com/lrtico/allowance-tracker部署到Google Cloud,并在访问网页https://allowance-tracker-287504.wn.r.appspot.com/时在错误报告中收到此错误:

Error: Cannot find module '/workspace/server.js'
  at Function.Module._resolveFilename (loader.js:636)
  at Function.Module._load (loader.js:562)
  at Function.Module.runMain (loader.js:831)
  at startup (internal/bootstrap/node.js:283)
  at bootstrapNodeJSCore (internal/bootstrap/node.js:623)

作为测试,我将相同的版本部署到Azure,并且该应用程序运行完美。关于我所缺少的任何想法吗?

3 个答案:

答案 0 :(得分:2)

我是对的。我进行了测试,并通过更新app.yaml

成功地在App Engine上进行了部署
  1. 首先做一个npm run build
  2. 然后像这样更新app.yaml文件
runtime: nodejs10

handlers:
  - url: /
    static_files: build/index.html
    upload: build/index.html

  - url: /
    static_dir: build
  1. 部署您的应用gcloud app deploy

答案 1 :(得分:0)

确保你的 package.json 有启动命令。

"scripts": {
  "start": "node app.js"
}

答案 2 :(得分:0)

我遇到了同样的错误。那是因为我错误地删除了启动脚本。

来自 GCP AppEngine 文档:

<块引用>

默认情况下,运行时通过运行 node 来启动您的应用程序 server.js。如果您在 package.json 文件中指定启动脚本, 运行时运行指定的启动脚本

另一种方式定义如下:

<块引用>

您可以通过在 app.yaml 的入口点字段中指定脚本来覆盖此行为。运行时不是运行 node server.js 或启动脚本,而是使用您在入口点中指定的命令启动您的应用程序

见:https://cloud.google.com/appengine/docs/standard/nodejs/runtime#application_startup