create-react-app 관련 webpack에러

create-react-app으로 세팅을 하면 webpack 버전이 4.19.1 버전입니다.

하지만 node_module에 있는 webpack버전이 4.27.0버전이라 에러가 생겨서 node모듈과 package-lock.json 지우고 다시 설치하는 방법으로 하고 있는데요. 문제는 새로운 모듈을 설치할때마다 node_module에 있는 webpack버전이 4.27.0버전으로 자동 변경됩니다.

어떤방법으로 문제를 해결하면 좋을까요?

노드버전: v10.14.2
yarn버전: 1.12.3
os: 윈도우10

package.json 파일 내에 webpack 버전 설정 부분에서 ^ 부분을 제거하여 다음과 같이 작성해주세요.

"webpack": "4.19.1",

CRA 버전이 올라갈 때 마다 해당 버전의 webpack 의존성 버전을 확인하여 수정해주면 됩니다.

답변주셔서 감사합니다. ㅜㅜ 제가 npm인스톨을 할때 --save옵션을 이용하지 않아서 package.json에 웹팩이 의존성 저장이 되지 않았는데요. 이런점이 문제가 되는걸까요? 노드 모듈에 있는 웹팩이 버젼이 변경되면 package.json 에 웹팩이 없어서 문제가 되는것 같아서요.

특정 버전으로 고정되서 설치되게 하려면 의존성을 추가해서 인스톨 해주어야 합니다.
웹팩은 개발 의존성이라 아래처럼 특정 버전을 지정하여 인스톨해주면 됩니다.

yarn add [email protected] -D

CRA 사용 시 웹팩을 별도로 설치할 일이 없기는 한데 새 패키지 설치마다 왜 자동으로 버전이 바뀌는지는 의문이네요;
다른 npm 패키지에서 웹팩에 대한 의존성을 갖고 있는게 있을지도 모르겠습니다.

아래 명령어로 다른 패키지가 웹팩 의존성을 갖고 있는지 확인해 볼 수 있습니다.

yarn list | grep webpack@

빠른 답변주셔서 감사합니다. 막막했는데 문제를 조금 알것 같습니다. 연말 잘보내세요.~~

1개의 좋아요

package-lock.json 을 열어 보시면 어떤게 webpack을 쓰고 있는지 알 수 있습니다.

모듈 추가할 때 —save 는 안하셔도 됩니다. 그건 오래전에 default로 변했어요.

프로젝트 폴더에서

rm -rf node_modules
rm -rf package-lock.json
npm i

하시고 package-lock.json 을 확인해서 webpack 의존성을 가진 모듈을 검토해 보세요.

yarn why webpack

특정 모듈 의존성을 검사하고 싶을 때 쓰는 yarn 커맨드입니다.

@cometkim Why 라는 명령어 처음 알았네요
@DongWoo_Gim . — save가 디폴트로 바뀐것도 몰랐네요. ㅎㅎ
감사합니다.

그래도 구버전을 가끔 쓸때도 있으니 당분간은 —save 옵션을 입력하는 습관은 그냥 유지할래요. ㅎ