CRA에서 모든 라이브러리가 dependency에 들어가있는 이유는?
저도 궁금해서 찾아봤는데요.
CRA는 모든 라이브러리를 bundle된 이후에 사용하기 때문에, devdepedency와 구별이 무의미하다고 생각했고, 혹시나 있을 스크립트 오류를 방지하기 위해 dependency에 모든 라이브러리를 넣었다고 합니다.
node app 같은 경우에는 dev와 구별짓는 것이 의미가 있는데, CRA는 node app이 아니라는 것이다.
"엥? CRA에서도 npm start 같은 걸로 실행하는데 뭐가 node app이 아닙니까?"
웅 아니다.
CRA에서 npm start는 react-script 라는 라이브러리를 이용하는데, 요녀석은 webpack으로 src/index.js 를 entry로 하는 소스파일들을 번들링한다.
원래 node app이었다면, dev에서만 사용할 라이브러리를 production 코드에서는 배포안하고 결정하기 위해 구별한건데,
CRA는 항상 번들링하므로 이건 node app이 아니라 항상 번들링해서 배포하는 형식이고 dev에 넣든 dependency에 넣든 항상 모든 dependency가 사용되어서 구별하는게 사실 의미가 없다는 것이다!
'개발 > FrontEnd Interview' 카테고리의 다른 글
CSS-in-JS와 CSS-in-CSS의 차이점은 무엇인가요? (0) | 2021.06.23 |
---|---|
왜 emotion을 사용했나요? (0) | 2021.06.23 |
CSR에서 SEO는 어떻게 해결할 수 있는가? (0) | 2021.06.19 |
React Router의 render와 component 차이 (0) | 2021.06.19 |
CSR은 왜 SEO 문제가 발생하는가? (0) | 2021.06.19 |