部署到AppEngine时,出现“文件太多”错误

时间:2020-06-16 06:57:22

标签: google-app-engine

this community tutorial之后,在GCP AppEngine中设置了ktor,我另外修改了'webapp'文件夹,使其成为基于完全React的SPA。在webapp目录中运行npm start可以正常工作,在外部目录中运行./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文件,但是部署步骤并没有选择它们-它似乎总是从头开始生成一个文件。

有什么主意我可以让它工作吗?我可能在做一些根本错误的事情吗?

1 个答案:

答案 0 :(得分:0)

您没有app.yaml文件,因为您正在使用App Engine Gradle Plugin

编辑

似乎您必须使用<exclude>元素来遵循exclude syntax。在模式中,*表示文件或目录名称中任何字符的零个或多个,而**表示路径中的零个或多个dir。部署AppEngine应用时,不会上传与此元素匹配的文件。

<include>元素将覆盖包括所有文件的默认行为。 <exclude>元素适用于所有模式(以及未提供明确的<include>时的默认值)。

以下示例演示如何将所有.png文件指定为静态文件(data/目录及其所有子目录中的文件除外)

<static-files>
  <include path="/**.png" />
  <exclude path="/data/**.png" />
</static-files>

您可以将其用于路径node_modules