gpt4 book ai didi

yarnpkg - AWS CodeBuild 不适用于 Yarn 工作区

转载 作者:行者123 更新时间:2023-12-03 15:16:57 27 4
gpt4 key购买 nike

我在我的存储库中使用 Yarn Workspaces 并使用 AWS CodeBuild 来构建我的包。构建开始时,CodeBuild 需要 60 秒来安装所有包,我想避免这次缓存 node_modules文件夹。

当我添加:

cache:
paths:
- 'node_modules/**/*'

到我的 buildspec文件并启用 LOCAL_CUSTOM_CACHE ,我收到此错误:

error An unexpected error occurred: "EEXIST: file already exists, mkdir '/codebuild/output/src637134264/src/git-codecommit.us-east-2.amazonaws.com/v1/repos/MY_REPOSITORY/node_modules/@packages/configs'".



有没有办法消除配置 AWS CodeBuild 或 Yarn 的错误?

我的构建规范文件:
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:

文件夹 /codebuild/output/src637134264/src/git-codecommit.us-east-2.amazonaws.com/v1/repos/MY_REPOSITORY/node_modules/@packages/configs试图由 Yarn 创建,使用命令 - yarninstall阶段。该文件夹是我的存储库包之一,名为 @packages/config .当我跑 yarn在我的电脑上,Yarn 按照 here 的说明创建链接我的包的文件夹.我的 node_modules 的一个例子结构在我的电脑上:
node_modules/
|-- ...
|-- @packages/
| |-- configs/
| |-- myPackageA/
| |-- myPackageB/
|-- ...

最佳答案

我遇到了完全相同的问题(“EEXIST: file already exists, mkdir”),我最终使用了 S3 缓存,并且效果很好。 注意:由于某种原因,第一次上传到 S3 的时间太长了(10 分钟),其他的都很好。
前:

[5/5] Building fresh packages...
--
Done in 60.28s.
后:
[5/5] Building fresh packages...
--
Done in 6.64s.
如果您已经配置了您的项目,您可以通过访问 Project -> Edit -> Artifacts -> Additional configuration 来编辑缓存。
我的 buildspec.yml 如下:
version: 0.2

phases:
install:
runtime-versions:
nodejs: 14
build:
commands:
- yarn config set cache-folder /root/.yarn-cache
- yarn install --frozen-lockfile
- ...other build commands go here

cache:
paths:
- '/root/.yarn-cache/**/*'
- 'node_modules/**/*'
# This third entry is only if you're using monorepos (under the packages folder)
# - 'packages/**/node_modules/**/*'
如果你使用 NPM,你会做一些类似的事情,但命令略有不同:
version: 0.2

phases:
install:
runtime-versions:
nodejs: 14
build:
commands:
- npm config -g set prefer-offline true
- npm config -g set cache /root/.npm
- npm ci
- ...other build commands go here

cache:
paths:
- '/root/.npm-cache/**/*'
- 'node_modules/**/*'
# This third entry is only if you're using monorepos (under the packages folder)
# - 'packages/**/node_modules/**/*'
感谢: https://mechanicalrock.github.io/2019/02/03/monorepos-aws-codebuild.html

关于yarnpkg - AWS CodeBuild 不适用于 Yarn 工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com