Я использую Yarn Workspaces в своем репозитории, а также использую AWS CodeBuild для сборки своих пакетов. Когда начинается сборка, CodeBuild занимает 60 секунд, чтобы установить все пакеты, и я бы хотел избежать этого времени кеширования папки node_modules
.
Когда я добавляю:
cache:
paths:
- 'node_modules/**/*'
в мой buildspec
файл и включите LOCAL_CUSTOM_CACHE
, я получаю эту ошибку:
error Произошла непредвиденная ошибка: «EEXIST: файл уже существует, mkdir '/codebuild/output/src637134264/src/git-codecommit.us-east-2.amazonaws.com/v1/repos/MY_REPOSITORY/node_modules/@ пакеты / конфиги».
Есть ли способ устранить эту ошибку при настройке AWS CodeBuild или Yarn?
Мой файл buildspec:
version: 0.2
phases:
install:
commands:
- npm install -g yarn
- git config --global credential.helper '!aws codecommit credential-helper $@'
- git config --global credential.UseHttpPath true
- yarn
pre_build:
commands:
- git rev-parse HEAD
- git pull origin master
build:
commands:
- yarn run build
- yarn run deploy
post_build:
commands:
- echo 'Finished.'
cache:
paths:
- 'node_modules/**/*'
Спасибо!
Обновление 1:
Yarn пыталась создать папку /codebuild/output/src637134264/src/git-codecommit.us-east-2.amazonaws.com/v1/repos/MY_REPOSITORY/node_modules/@packages/configs
командой - yarn
на этапе install
. Эта папка является одним из моих пакетов репозитория, называется @packages/config
. Когда я запускаю yarn
на моем компьютере, Yarn создает папки, связывающие мои пакеты, как описано здесь . Пример того, как моя node_modules
структура находится на моем компьютере:
node_modules/
|-- ...
|-- @packages/
| |-- configs/
| |-- myPackageA/
| |-- myPackageB/
|-- ...