Javascript 是否有办法在Netlify部署之间更新文件?

Javascript 是否有办法在Netlify部署之间更新文件?,javascript,node.js,gulp,netlify,eleventy,Javascript,Node.js,Gulp,Netlify,Eleventy,我在Netlify上有一个网站,它是用11ty构建的,有一些数据存储在Airtable中。使用Airtable,我的客户可以修改此网站上的某些信息(照片和其他一些信息),然后,当仍在Airtable中时,按下一个按钮,向Netlify发送一个webhook,以使用Airtable中的最新信息重建网站 对于图像,我有一个吞咽任务,在每次构建时: 查看“Images”Airtable表中的所有记录(它们的API为我提供文件名和URL),并以JSON格式的变量列出它们 然后将该列表与上次构建期间创建

我在Netlify上有一个网站,它是用11ty构建的,有一些数据存储在Airtable中。使用Airtable,我的客户可以修改此网站上的某些信息(照片和其他一些信息),然后,当仍在Airtable中时,按下一个按钮,向Netlify发送一个webhook,以使用Airtable中的最新信息重建网站

对于图像,我有一个吞咽任务,在每次构建时:

  • 查看“Images”Airtable表中的所有记录(它们的API为我提供文件名和URL),并以JSON格式的变量列出它们
  • 然后将该列表与上次构建期间创建的列表进行比较,该列表存储在文件
    (portfoliocache.json)
  • 如果这些列表是相同的,这意味着Airtable中的图像自上次构建以来没有更改,所以什么都不做,节省带宽
  • 但是,如果这些列表不同,它会删除我的“图像”文件夹中的所有文件,从Airtable下载它们,然后对它们进行优化,将新图像放入我的“图像”文件夹
    portfoliocache.json
    被新列表覆盖。 这需要一些时间并消耗一些Netlify构建分钟,所以我只在Airtable映像已更改的情况下执行此操作
这在我的local Node.js环境中非常有效,但由于Netlify使用Git repo作为其源,它每次都使用相同的portfolioCache.json和相同的“images”文件夹,因此在每次Netlify构建时都会重新下载我的所有图像

是否有办法在Netlify构建期间更新并保存我的
portfoliocache
和我的“images”文件夹,以便下一个构建具有最新的图像列表?也许有一种方法可以在构建期间更新Git存储库中的文件

不确定显示我的代码是否与此相关,但如果需要,我很乐意这样做。

不要将文件和缓存存储在存储库中 我认为将缓存文件和图像提交到存储库不是一个好主意。首先,它并不真正属于那里,因为缓存不应该是存储库的一部分,在存储库中自动提交会使提交历史变得混乱。从实际的角度来看,这甚至可能导致无休止的循环-netlify构建更改存储库,从而触发重建等等

除此之外,您的方法不能像在本地环境中那样工作。Netlify为每个构建使用干净的虚拟环境,因此在下一个构建期间,上一个构建中的images文件夹将永远不存在

使用构建插件 您的构建步骤似乎正在运行,唯一的问题是,对于常规的netlify构建,每次处理所有映像的时间太长,需要花费许多构建分钟。在这种情况下,为什么不将缓存移动到一个位置?看看创建自己插件的文档,它包括一个。您可以使用它将映像信息存储在此缓存中,并在构建之间将其持久化。甚至将处理后的图像缓存在那里,只提取缓存中不存在的图像

将图像处理与构建步骤分开
另一个解决方案是将图像处理和构建步骤完全分离,允许您将处理后的图像存储在存储库中。例如,这应该可以使用或。

在netlify使用公文包进行比较之前,您可能希望设置一个GitHub操作,为您进行公文包缓存