[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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바