node.js - 使用本地、纱线工作区依赖项和生产环境(例如 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 工作区级依赖项和生产环境范围环境变量。你能给我一些方向吗?
解决方案
(编辑:最好采用上面评论中 jonrsharpe 描述的范例——即从实际生产环境(即 App Engine)中检索环境变量,而不是将它们烘焙到构建中。)
我只需要监听 8081 端口(即在本地构建,将 PORT 设置为 8081,然后部署构建的服务器)。也许 8080 被默认服务(在我的情况下是客户端)或 nginx 占用。我不太确定,但我现在继续前进。
推荐阅读
- c - (#ifdef) 与 (#define
) - android - 如何将字符串从 Activity 发送到 Fragment
- vue.js - 如何在 VueJS 中实现箭头功能?
- java - 什么可能导致错误
- javascript - ReactJS 和 jest:如何为 element.offsetWidth 使用模拟值?
- html - 在 flex 父级中保持纵横比
- here-api - TRUCK 设置的 HERE 路由问题
- c - struct中字符串的初始化
- java - 当 spring.http.multipart.enabled=false 并使用 Apache Commons File Upload 时出现“Servlet 没有多部分配置”500 错误
- package - 在 SystemVerilog Testbench 中包含 VHDL 包