来自我之前的问题AWS Amplify 控制台中的 Gatsby .cache 文件夹 https://stackoverflow.com/questions/57025169/gatsby-cache-folder-in-aws-amplify-console我发现 AWS Amplify 使用的 docker 映像容器在每次构建时都会更改其路径,但 .cache 文件夹文件路径是绝对的。是否可以使它们相对于文件夹,以便 .cache 可以跨构建分布?抱歉,我的解释不好,希望有人能理解......
请尝试以下操作:
构建规范.yml
version: 0.2
phases:
pre_build:
commands:
- mkdir -p /build-directory
- cp -a ${CODEBUILD_SRC_DIR}/. /build-directory
- cd /build-directory
- yarn
build:
commands:
- cd /build-directory
- gatsby build
post_build:
commands:
- cd /build-directory
- cp -a /build-directory/. ${CODEBUILD_SRC_DIR}
cache:
paths:
- 'node_modules/**/*'
- 'public/**/*'
- '.cache/**/*'
截至撰写本文时,还没有一个简洁的解决方案。缓存整个.cache
目录最终会抛出以下错误:
无法处理图像/codebuild/output/src***/src/project/.cache/gatsby-source-filesystem//.png 输入文件丢失
Gatsby 假设绝对路径.cache
构建之间是一致的。这与 CodeBuild 不太兼容,因为每次构建的构建目录都会发生变化。因此,Gatsby 无法找到缓存的文件并引发错误。
因此,创建一致的路径并将工件带到那里将解决该问题。构建完成后,请务必将新工件带到CODEBUILD_SRC_DIR
以便下次可以缓存它们!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)