오늘 귓동냥으로 좀 더 알아봐야겠다고 생각한 부분은 빌드할 때 shell파일에 대한 전반적인 내용이다.
일을 하다보면 이미 세팅되어있던 방식대로 빌드하고 그때그때 에러만 수정하면서 배포하는 경우가 많아서 오늘은 기본적인 부분들부터 찾아보고 정리해보았다.
보충해야할 내용은 있겠으나 일단 조금씩 더 알아보고 기록해보쟈!
(잘못된 부분은 알려주세요!)
root의 shell 파일에 실행시키기 위해 필요한 명령어를 적어두고 빌드 전에 쉘스크립트대로 실행시킨 후 빌드한다.
그럼 내가 하는 프로젝트에는 shell파일이 어딨지?
현재 나는 직접 프로젝트의 yarn 명령어로 진행!
yarn 명령어는 프로젝트 최상단의 package.json파일을 읽어서 실행되는데
알게된 김에 dev, stg, production에 따라 명령어 정리하고 dev 스크립트도 단순화해보았다.
"build:base": "react-scripts --max_old_space_size=4096 build", "build-dev": "env-cmd -f .env.development npm run build:base",
env-cmd -f .env.development
: .env.development파일의 환경 변수를 로드하라는 명령어react-scripts build
: react 프로젝트에서 기본 빌드 스크립트임, 정적 파일로 빌드함--max_old_space_size=4096
: node.js의 메모리 제한을 4096MB로 늘린다는 명령어1️⃣ 어플리케이션 번들링 & 최적화 진행
2️⃣ HTML 파일 생성
* index.html
<div id="root">
// root 안에 react 컴포넌트가 렌더링 됨
</div>
3️⃣ css & 기타 파일 처리
4️⃣ 최적화된 정적 파일들은 bulid/ 디렉토리에 저장되고 이 디렉토리가 서버로 배포
```jsx
build/
├── static/
│ ├── css/
│ │ └── main.12345.css
│ ├── js/
│ │ └── main.67890.js
│ └── media/
│ └── logo.abcdef.svg
```
5️⃣ CSR를 통해 실행됨