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

2023. 10. 13. 18:28·Programming/FE

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

 

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

 

몇 개월 동안 몇 개 프로젝트를 하면서 새로운 프론트 프레임워크나 라이브러리 도입이 없었기 때문에 이번엔 좀 핫하다는 vite와 yarn 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는 확실히 컴파일 속도가 매우 빨랐다. 강추합니다~

 

'Programming > FE' 카테고리의 다른 글

[JS 개념정리 3] scope, 스코프 체인, 호이스팅, TDZ, 클로저  (0) 2024.06.30
[JS 개념정리 2] call, apply, bind 메서드  (1) 2024.06.30
[JS 개념정리 1] script 태그 속성, ES6 module, strict mode, 화살표함수  (0) 2024.06.30
Next.js 프로젝트에 GA4 붙이기(사용자 속성, 잠재고객, UTM)  (0) 2024.06.16
'Programming/FE' 카테고리의 다른 글
  • [JS 개념정리 3] scope, 스코프 체인, 호이스팅, TDZ, 클로저
  • [JS 개념정리 2] call, apply, bind 메서드
  • [JS 개념정리 1] script 태그 속성, ES6 module, strict mode, 화살표함수
  • Next.js 프로젝트에 GA4 붙이기(사용자 속성, 잠재고객, UTM)
FoO__511
FoO__511
  • FoO__511
    FoO의 개발 블로그
    FoO__511
  • 전체
    오늘
    어제
    • 분류 전체보기 (17)
      • Programming (13)
        • Java (1)
        • Python (5)
        • Algorithm (2)
        • FE (5)
      • 학과공부 (2)
        • 데이터통신 (1)
        • 기계학습 (1)
        • 기타 (0)
      • 회고 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    렉시컬 스코프
    utm parameter
    백준
    javascript
    jupyter extension
    연습문제 6장
    kde plasma
    결측치 제거
    연습문제 풀이
    nextjs
    opencv-python으로 배우는 영상처리 및 응용
    사용자 속성
    script tag
    결손치 제거
    opencv-python
    function barrowing
    dinamic programming
    multi boot
    seaborn
    함수 빌려쓰기
    개방 시스템 상호 연결
    TDZ
    git workflow
    리눅스 카톡
    GA4
    partial application
    yarn berry
    Java
    Git Action
    Priority Queue
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
FoO__511
[troubleshooting] yarn berry와 깃헙 액션 사용시 주의점 (Error: Cannot find module '.yarn/releases/yarn-3.6.4.cjs')
상단으로

티스토리툴바