【问题标题】:Error: Cannot find module '/workspace/server.js'错误:找不到模块“/workspace/server.js”
【发布时间】:2020-12-15 20:49:46
【问题描述】:

我正在尝试部署一个 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 并且应用程序运行良好。关于我缺少什么的任何想法?

【问题讨论】:

  • 您没有在 app.yaml 中定义处理程序。正常吗?
  • 不确定this thread 是否会帮助您。请随意参考。
  • 谢谢@guillaumeblaquiere!我不知道这是否正常...我是一名前端开发人员,正在修补后端的东西 - 哈哈。我会尝试了解处理程序,看看是否是问题所在。
  • 谢谢@Digil!我确实阅读了该线程,在我看来,我的问题在于 Google Cloud 而不是源代码,因为我可以将它部署在 Azure 上(使用相同的 app.yaml 和 package.json 文件和源代码)。
  • 它只是一个前端网站吗?第一个页面叫什么?

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


【解决方案1】:

我是对的。我通过更新 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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      来自 GCP AppEngine 文档:

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

      另一种方式定义如下:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-17
        • 2018-11-07
        • 1970-01-01
        • 2013-03-22
        • 1970-01-01
        • 2019-11-18
        • 1970-01-01
        相关资源
        最近更新 更多