将.cache文件夹文件路径从绝对更改为相对。可能吗?

时间:2019-07-18 12:37:09

标签: gatsby

来自我之前的问题Gatsby .cache folder in AWS Amplify Console,我发现AWS Amplify使用的docker图像容器在每次构建时都会更改其路径,但是.cache文件夹文件路径是绝对的。是否可以使它们相对于文件夹,以便.cache可以跨构建分发?不好意思的解释,我希望有人能理解...

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

buildspec.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中,以便下次可以对它们进行缓存!