Bundler[Webpack] - entry & output
01.webpack.config.js
webpack.config.js
파일에서 기본적인 구성 옵션을 추가할 수 있습니다.- 브라우저에서는
import
,export
와 같이 데이터 가져오기와 내보내기가 사용됩니다. webpack.config.js
파일은 브라우저가 아닌node.js
환경에서 동작하므로 다른 명령어가 사용 됩니다.
webpack 참고 사이트
02.export (entry & output)
// export module.exports = { // parcel index.html // 파일을 읽어들이기 시작하는 진입점 설정 entry: "./js/main.js", // 결과물(번들)을 반환하는 설정 output: { path: path.resolve(__dirname, "dist"), // dist의 절대경로를 반환 filename: "app.js" } }
entry
webpack
번들러가 동작할 때 어디에서부터 어디에서부터 읽어들이기 시작하면 되는지에 대한 파일을 지정하는 키워드입니다.entry
는 하나의 진입점이 아닌 여러 진입점을 설정해줄 수도 있습니다.output
entry
를 통해 읽어들인 파일에 기본적인 연결 관계를webpack
이 분석하여 결과를 내어주는 기본적인 구성을 작성할 수 있습니다.- 이 옵션에는 객체 데이터를 통해 대표적인 옵션인
path
와filename
을 추가할 수 있습니다.path
는webpack
을 동작시킬 때 어떠한 경로에 결과물을 만들어서 내어줄건지 명시할 수 있습니다.filename
은entry
에서 읽어들인 파일명과 동일하게 지정해줄 수 있습니다.- 한 가지 주의해야할 점은
path
옵션은node.js
에서 필요로 하는 절대 경로를 명시해줘야 합니다.
03.import
path 모듈 가져오기
// import const path = require("path")
path
옵션은node.js
에서 필요로 하는 절대 경로를 명시해줘야 하는데 이를 쉽게 하기 위해node.js
에서 제공하는 전역 모듈인path
를 가져오도록 합니다.path 옵션 명시하기
// export module.exports = { // parcel index.html // 파일을 읽어들이기 시작하는 진입점 설정 entry: "./js/main.js", // 결과물(번들)을 반환하는 설정 output: { path: path.resolve(__dirname, "dist"), // dist의 절대경로를 반환 filename: "app.js" } }
path
라는 전역 모듈을 가져오고 이에resolve()
라는 메소드를 실행합니다.resolve()
: 해당 메소드는 첫 번째와 두 번째 인수의 경로를 합쳐주는 역할을 수행합니다.__dirname
:node.js
의 전역 변수로 현재 파일이 있는 그 경로를 지칭합니다.- 두번째 인수:
dist
라는 파일의 경로를 합쳐서 절대 경로를output
의path
옵션에 반환 합니다.build
를 하면dist
이름의 폴더 안에app.js
파일을 자동 생성 해줍니다.
04.build
$ npm run build
build
라는 제품 모드인 터미널 명령을 통해 프로젝트 폴더에dist
폴더가 생겼으며dist
이름의 폴더 안에app.js
파일을 자동 생성 해줍니다.
05.clean 옵션 (true 설정)
// export module.exports = { // parcel index.html // 파일을 읽어들이기 시작하는 진입점 설정 entry: "./js/main.js", // 결과물(번들)을 반환하는 설정 output: { path: path.resolve(__dirname, "dist"), // dist의 절대경로를 반환 filename: "main.js", clean: true } }
filename
속성에서 해당 경로에 파일명이 다른main.js
를 설치하게 되면 기존에 있던app.js
가 그대로 있는 상태에서 추가적으로main.js
가 생성 됩니다.
이를 해결하기 위해서는clean
이라는 옵션에true
값을 주어 전에 설치한app.js
파일을 제거하는 것이 가능합니다.app.js
파일은 자동 삭제되고main.js
파일만 생성 됩니다.
06.path 옵션 생략
// export module.exports = { // parcel index.html // 파일을 읽어들이기 시작하는 진입점 설정 entry: "./js/main.js", // 결과물(번들)을 반환하는 설정 output: { clean: true } }
- 위와 같이
output
의path
,filename
을 삭제하고$npm run build
를 진행해도 실제로는dist
폴더와 그 안에main.js
이 함께 생성됩니다.- 이는
webpack
번들러가 기본값으로 결과물을dist
폴더에entry
에 입력한 동일한 파일명으로 만들어주기 때문입니다.- 그러나 구성이 복잡해지면 위에서 배운
path
와filename
이 필요한 경우가 생길 수 있습니다.
Author And Source
이 문제에 관하여(Bundler[Webpack] - entry & output), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wlsdnjs156/BundlerWebpack-entry-output저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)