【发布时间】:2021-11-14 01:50:06
【问题描述】:
我有一个已转换为 Universal 的 Angular 12 应用程序。
稍微调整一下后,它可以按预期在本地工作。
我部署到 Google AppEngine 但得到 '500 Error: Server Error'。
查看日志我看到了错误:./my-app/server/main.js: Syntax error: "(" unexpected.
我的 app.yaml 很简单:runtime: nodejs14entrypoint: ./my-app/server/main.js
我尝试使用和不使用 --prod 进行构建,但仍然遇到相同的错误。
任何帮助将不胜感激...
更新:
从 app.yaml 中删除 entrypoint 时出现错误:
Error: Cannot find module '/workspace/server.js' at
Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15) at
Function.Module._load (internal/modules/cjs/loader.js
这是 package.json 的脚本部分:
{
"name": "my-app",
"version": "1.0.0",
"scripts":
{
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"prod-build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"dev:ssr": "ng run my-app:serve-ssr",
"serve:ssr": "node dist/my-app/server/main.js",
"build:ssr": "ng build && ng run my-app:server",
"prerender": "ng run my-app:prerender"
},
...
【问题讨论】:
-
根据这个documentation Entrypoint 通过在您的应用程序启动时执行 entrypoint 命令来覆盖默认启动行为。要让您的应用接收 HTTP 请求,入口点元素应包含一个命令,该命令可启动在端口 8080 上侦听的网络服务器。如果您未指定入口点,App Engine 将使用您的 package.json 文件中指定的启动脚本。跨度>
-
当我删除入口点时出现错误:
Error: Cannot find module '/workspace/server.js' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:889:15) at Function.Module._load (internal/modules/cjs/loader.js我添加了 package.json 的脚本部分 -
您好,能否提供您的文件夹结构?而且我确实尝试重现该问题,当我提供入口点时收到 500 服务器错误,但当我删除它时它工作正常。
-
当我删除入口点并且在 package.json 中只有“启动”脚本时,它对我不起作用。请参阅下面的答案。
标签: angular google-app-engine universal app.yaml server-error