首页 > 解决方案 > 使用本地、纱线工作区依赖项和生产环境(例如 App Engine)环境变量构建?

问题描述

我一直致力于通过 Google App Engine 部署全栈应用程序。如果我尝试让 App Engine 从源代码构建,Google 的 buildpacks 显然不知道如何处理我的 Yarn 工作区依赖 URL。所以对于客户端,我只是在本地构建并部署静态资产。没问题。(这是将具有内部依赖关系的 yarn 工作区 monorepo 应用程序部署到 Google App Engine 的部分解决方法,更间接地说,如何在不将包发布到 npm 注册表的情况下将依赖于 yarn 工作区的应用程序部署到 Google App Engine?

这对客户端来说很好,但我在部署后端时遇到了问题:显然,服务器应该监听 App Engine 环境的 PORT env var。我能想到的唯一方法是部署源代码并允许通过 Google App Engine 构建它;但是,正如我所提到的,这与工作区依赖 URL 不兼容。如果我在部署到 GAE 之前在本地构建节点应用程序,它仍然可以运行(甚至可以执行出口),但是因为它没有在 PORT env var 上侦听,所以服务器不接受任何请求。我不想发布后端的工作区级部门。

我确信有人必须有部署节点应用程序的经验,该应用程序依赖于 Yarn 工作区级依赖项和生产环境范围环境变量。你能给我一些方向吗?

标签: node.jsgoogle-app-engineyarnpkgyarn-workspacesgoogle-appengine-node

解决方案


(编辑:最好采用上面评论中 jonrsharpe 描述的范例——即从实际生产环境(即 App Engine)中检索环境变量,而不是将它们烘焙到构建中。)

我只需要监听 8081 端口(即在本地构建,将 PORT 设置为 8081,然后部署构建的服务器)。也许 8080 被默认服务(在我的情况下是客户端)或 nginx 占用。我不太确定,但我现在继续前进。


推荐阅读