FoO의 개발 블로그

[troubleshooting] yarn berry와 깃헙 액션 사용시 주의점 (Error: Cannot find module '.yarn/releases/yarn-3.6.4.cjs') 본문

Programming/FE

[troubleshooting] yarn berry와 깃헙 액션 사용시 주의점 (Error: Cannot find module '.yarn/releases/yarn-3.6.4.cjs')

FoO__511 2023. 10. 13. 18:28

최근 개발 중이던 Next.js 프로젝트에서 핵심 로직을 떼서 패키지화 하기로 했다. 

 

아직 패키지 제작 경험이 없기도 해서 Next.js보다 그냥 React.js를 사용해 클라이언트 컴포넌트, 훅 정도로 제공할 생각이다. 그 중에서도 핵심 로직은 서버에서 돌리고 싶긴 하지만 d3와 함께 사용하면서 클라이언트에서만 돌릴 수 있는 로직과 서버로 숨기고 싶은 로직이 끈적끈적하게 섞여 있는 상태라 차차 고민할 문제로 미뤄 놓았다. 나중엔 만들어둔 패키지를 또 서버 패키지와 클라이언트 패키지로 분리할 같기도..

 

몇 개월 동안 몇 개 프로젝트를 하면서 새로운 프론트 프레임워크나 라이브러리 도입이 없었기 때문에 이번엔 좀 핫하다는 viteyarn berry(pnp), chakra.ui를 사용하기로 했다. 

 

기존에는 ant design을 썼기 때문에 ui 라이브러리를 옮기며 시간 좀 보내고.. 마지막으로 깃 액션을 위한 워크플로우 파일을 간단히 손보고 올리다가 무려 39번이나 액션에 실패하는 상황에 처하게 된다.

 

 

 yarn berry와 git action을 키워드로 한참 찾아봐도 문제가 없어보여 이래 저래 바꾸면서 올렸는데 계속해서 실패했다.

 

워크플로우 파일은 아래와 같다.

name: FRONTEND-DEV CI/CD

on:
  push:
    branches:
      - main
      - dev
  pull_request:
    branches:
      - main
      - dev

jobs:
  build-and-publish:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x]
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - run: yarn set version stable
      - run: yarn
      - run: yarn build
      - run: yarn publish

 

좀 더 찾아보니 오류 메시지를 읽고 생각을 좀 하면 되는 부분이었다. 

Error: Cannot find module '/home/runner/work/visualizer-client/visualizer-client/.yarn/releases/yarn-3.6.4.cjs'

.gitignore파일에 필요한 파일을 숨기도록 지시해 생긴 문제였다. yarn berry를 사용하면 프로젝트 루트 디렉터리에 .yarn 폴더가 생기는데 이 폴더 속에 몇가지 필요한 폴더들을 예외처리 해줘야 한다.

 

 

기존 .gitignore 파일

.yarn/*

 

고친 .gitignore

.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

 

yarn berry의 특징인 zero install은 메리트보다는 별로인 점이 많다고 생각되어 최소한으로 필요한 폴더들만 포함시켰다.

 

 

----

 

* vite는 확실히 컴파일 속도가 매우 빨랐다. 강추합니다~