티스토리 뷰

프로젝트 구조

현재 프로젝트는 yanr workspace와 lerna를 활용한 모노레포로 구성되어 있다. 각 패키지에서는 웹팩을 사용하고 있는데 문제는 yarn install로 패키지를 설치할때 yarn workspace가 자동으로 각 패키지간 중복된 모듈들을 루트에 딱 한번만 설치해주는 hoist기능을 해준다는것이다. 

 

multiwrite라는 패키지를 webpack-dev-server로 오픈하려고 할때 위와 같은 오류가 발생했다.

 

원인은 multiwrite 패키지는 cra로 생성된 프로젝트라 웹팩 4.42.0버전을 요구하고 있는데 프로젝트 루트에 설치된 웹팩의 버전이 4.43.0이기 때문에 오류가 발생할 가능성이 있어서 이렇게 길고 긴 에러 메세지를 뱉어주고 있는것이다.

 

세 패키지의 웹팩 버전을 ^4.43.0으로 명시하는게 아니라 4.42.0으로 통일시키면 웹팩 4.42.0버전이 루트로 hoist되면서 오류가 사라진다. 하지만 이렇게 되면 최신 버전의 웹팩을 설치 할 수가 없다.

 

그래서 대신 루트의 package.json에 다음과 같이 명시하였다.

"workspaces": {
		"packages": [
			"packages/*"
		],
		"nohoist": [
			"**/webpack",
			"**/webpack/*"
		]
	},

webpack을 hoist하지 않겠다고 명시하면 웹팩은 레포지토리 루트에 딱 한번만 설치되는게 아니라 각 패키지에 중복으로 설치된다. 덕분에 레포지토리 루트에는 웹팩이 설치되지 않으므로 워닝이 사라진다.

 

.env에 SKIP_PREFLIGHT_CHECK=true로 명시해서 해결하는 방법은 잠재적인 버그를  발생시킬 가능성을 증가시키므로 지양하는게 좋을것같다.

 

'Project Structure' 카테고리의 다른 글

atomic design 파헤치기  (3) 2020.04.16
storybook and atomic design  (0) 2020.03.23
yarn workspace와 Lerna.js로 모노레포 만들기  (0) 2020.03.16
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함