【问题标题】:Deploying to AppEngine, I get "too many files" error部署到 AppEngine,我收到“文件太多”错误
【发布时间】:2020-06-16 06:57:22
【问题描述】:

this community tutorial 在 GCP AppEngine 中设置 ktor 之后,我另外修改了“webapp”文件夹,使其成为一个完全基于反应的 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 文件,但部署步骤并没有选择它们 - 它似乎总是从头开始生成一个。

知道如何让它工作吗?也许我做错了什么?

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

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

    编辑

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

    <include> 元素会覆盖包含所有文件的默认行为。 <exclude> 元素适用于所有模式(如果未提供显式 <include>,则应用默认值)。

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

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

    你可以在你的路径中使用它node_modules

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2018-08-29
      • 2013-06-10
      • 2013-05-18
      • 2021-11-23
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多