我正在尝试将开发的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,并且该应用程序运行完美。关于我所缺少的任何想法吗?
答案 0 :(得分:2)
我是对的。我进行了测试,并通过更新app.yaml
成功地在App Engine上进行了部署npm run build
app.yaml
文件runtime: nodejs10
handlers:
- url: /
static_files: build/index.html
upload: build/index.html
- url: /
static_dir: build
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