[Pre Onboarding] 9월 2일
웹팩은 모듈 번들러 이다!
A module is one of the separate parts.
In computing, a compiler is a computer program that translates computer code written in one programming language into another language
Babel은 JavaScript 컴파일러이다.
무조건 항상 설치하고 시작!
빈폴더 만들기
mkdir react-webpack
cd react-webpack
그리고 application의 시작점(entry point)인 자바스크립트 파일 하나는 생성해줘야 합니다.
mkdir src
touch src/index.js
package.json 파일도 초기화
npm init
웹팩, 바벨 둘 다 배웠으니까 처음에 필수로 필요한 모듈 한꺼번에 설치!
yarn add webpack webpack-cli babel-loader @babel/core @babel/preset-env @babel/preset-react -D
yarn add react react-dom
babel도 세팅을 해줘야 하는데 좀 이따 하기로 하고, 일단 webpack 설정 파일부터 생성합니다. 이 프로젝트의 root 경로에 만드시면 됩니다.
config는 사용자마다 다 다르다
```jsx
// webpack.config.js
const path = require('path');
const config = {
entry: './src/index.js', //무슨파일부터 시작해라고 하는것
output: { //
path: path.resolve(__dirname, 'build'),
filename: 'bundle.js'
}
};
module.exports = config;
```
- 만약 나는 지금 단계에서 꼭 깊게 공부해야만해! 그런 경우 Node.js에 모듈시스템을 사용하기 위해 기본으로 채택된 commonJS를 검색해서 알고 넘어가면 됩니다. commonJS, require, module.exports를 검색해보세요. 다 알아서 해주는 create react app에서는 ES6에서 제공하는 import, export 를 사용하여 모듈시스템을 잘 썼지만, 이 키워드는 브라우저에서 이해하지 못하는 문법입니다. 그래서 babel을 써야하고, babel이 적용되지 않는 webpack 설정 파일은 Node.js의 모듈방식을 따라야 하므로 require, module.exports 등을 사용하는 것입니다.'
이제 설정이 잘 되었는지 실행해볼까요? webpack 명령어를 사용해서 실행해야 하므로 package.json 의 script에 webpack 을 추가해보겠습니다.
{
"name": "react-webpack",
"version": "0.0.1",
"scripts": {
"build": "webpack"
},
"author": "wecode",
"devDependencies": {
"@babel/core": "^7.15.0",
"@babel/preset-env": "^7.15.0",
"@babel/preset-react": "^7.14.5",
"babel-loader": "^8.2.2",
"webpack": "^5.51.1",
"webpack-cli": "^4.8.0"
},
"dependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2"
}
}
그리고 build 명령어를 실해봅시다.
yarn build
build 폴더 밑에 bundle.js 파일이 생겼나요? 그러면 성공. good 👍🏼