나를 죽이지 못한 삽질들

[삽질] - Netlify deploy error (conflicts dependencies)

Creative_Lee 2022. 6. 14. 16:38

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를 시도했고,

결과는?

 

붐! 해결완료!

 

 

 

드가자!