1. 사건의 발단
Netlify를 사용한 프로젝트 deploy 첫 시도가 에러에 가로막혔다.
2. 문제의 원인
Netlify에 처음 deploy시 모듈 설치를 하는데 그 과정에서 peer dependency 충돌이 발생했다.
3. 원인에 대한 공부
3-1. peer dependencies
peer dependencies란?
실제로 패키지에서는 require, import 하지 않지만,
특정 라이브러리나 툴의 호환성을 필요로 할 경우 명시하는 dependency이다.
쉽게 생각하면 내가 사용하려는 패키지가 요구하는 패키지 라고 생각하면 된다.
3-2. npm 버전 7의 피어 종속성 자동 설치
npm 버전 7부터 피어종속성이 자동으로 설치된다.
또한 종속성의 충돌이 있는 경우 에러로 판단해 설치를 중단한다.
이러한 이유로 peer dependencies conflict가 발생했을 때,
--force 혹은 --legacy-peer-deps 옵션을 사용하여 설치를 진행해야 한다.
--force : 충돌을 우회해 package-lock.json에 다른 의존 버전을 추가하고 설치한다.
--legacy-peer-deps : peer dependencies 충돌을 무시하고 설치한다.
3-3. Netlify에 대한 이해
Netlify에는 프로젝트에 필요한 환경변수를 전달 할 수 있는 탭이 있다.
4. 문제의 해결
Netlify docs를 잘 살펴보니 환경 변수에 대한 설명이 자세하게 되어 있었다.
npm install 과정에서 사용하고 싶은 옵션을
NPM_FLAGS 라는 환경변수로 설정하여 적용할 수 있다고 나온다.
환경변수를 생성하고 다시 deploy를 시도했고,
결과는?
붐! 해결완료!
'나를 죽이지 못한 삽질들' 카테고리의 다른 글
[삽질] - imagemin 패키지의 Unknown plugin 오류 (0) | 2023.09.02 |
---|---|
[삽질] - parcel build시 root 문제 (0) | 2022.01.10 |
[삽질] - CRA의 eject (2) | 2022.01.05 |
두 번의 삽질은 멍청한 짓이다. (0) | 2022.01.05 |