在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文件,但是部署步骤并没有选择它们-它似乎总是从头开始生成一个文件。
有什么主意我可以让它工作吗?我可能在做一些根本错误的事情吗?
答案 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