google-app-engine - 部署到 AppEngine,我收到“文件太多”错误
问题描述
按照这个在 GCP AppEngine 中设置 ktor 的社区教程,我另外修改了“webapp”文件夹,使其成为一个完全基于反应的 SPA。npm start
在 webapp 目录中运行正常,./gradlew appengineRun
在外部目录中运行也是如此。但是在尝试部署时,它抱怨我有超过 10k 个文件。如果没有详细信息,似乎 node_modules 最有可能受到指责。
上网查了几个小时,老的解决方案是在app.yaml中添加一个'skipFiles'部分,而新的解决方案是创建一个.gcloudignore文件。在这两种情况下,列出node_modules
都应该导致它们不被部署。但是,对于我正在关注的教程,我没有 app.yaml 文件 - 它显然是由各种 .xml 配置构建的,作为 appEngine gradle 插件的暂存步骤的一部分。我可以创建 .gcloudignore 文件,但它不会被推送到部署暂存文件夹(称为“build/staged-app”)。即使手动将其放置在那里,它也无法正确构建,因为有一个 skipFiles 和 .gcloudignore,它们不能共存。
我觉得有一些 1 行更改来完成这项工作,但我不知道它可能是什么。我尝试使用覆盖设置在项目中创建 app.yaml 文件,但部署步骤并没有选择它们 - 它似乎总是从头开始生成一个。
知道我怎样才能让它工作吗?也许我在做一些根本错误的事情?
解决方案
您没有app.yaml
文件,因为您使用的是App Engine Gradle Plugin
.
编辑
看来您必须遵循使用元素的排除语法。<exclude>
在模式中,*
表示文件或目录名称中的零个或多个任意字符,并**
表示路径中的零个或多个目录。部署 AppEngine 应用程序时,不会上传与此元素匹配的文件。
<include>
元素会覆盖包含所有文件的默认行为。一个<exclude>
元素在所有模式之后应用(如果没有提供显式,则应用默认值<include>
)。
以下示例演示如何将所有文件指定为静态文件(目录及其所有子目录.png
中的文件除外):data/
<static-files>
<include path="/**.png" />
<exclude path="/data/**.png" />
</static-files>
您可以将其与您的路径一起使用node_modules
推荐阅读
- javascript - 有没有一种方法可以在 express js 中的特定条件后执行函数
- html - 带有图标的 CSS 样式侧导航栏
- javascript - 我想等到循环中的键等于值
- .net - 使用适用于 .NET 的 Azure Blob 存储客户端库 v12 下载 Blob
- python - Docker- ModuleNotFoundError:没有名为“六”的模块
- javascript - Cypress.io:有自己的断言消息?
- c++ - 为什么我的班级没有使用 Qt QUDPSocket 接收 UDP 数据报?
- css - 将某种风格融入 Launchpad 应用程序的官方方法是什么?
- excel - 对不同工作表上的输入数据从一张工作表执行多行计算
- javascript - 如何在小部件弹出样式中嵌入 React/Angular 应用程序