온 기사 기록은 초기 설치하고 여기에 기본적인 사용을 웹팩이 상대적으로 완료, 기본 프로젝트를 빌드 할 웹팩을 사용하는 방법에 대한 기록입니다
4 개 핵심 개념 1. 웹팩
- 입구 (입구) : 입구 모듈을 구축 할 수있는 프로젝트를 선택, 자신이이 문서의 시작 지점을 기준으로 전체 프로젝트를 구축 할 것입니다.
- 출력 (출력) : 컴파일 된 파일 저장 디렉토리의 건설, 지정된 폴더를 건설하는 프로젝트의 출력.
- 로더 : 비 파일의 웹팩 유형 및 패키지 빌드를 처리 할 수 JS.
- 플러그인 (플러그인) : 로더 기능보다 더 강력한, 당신은 더 복잡한 작업을 수행 할 수 있습니다.
2. 타겟 Benpian
완전한 프론트 엔드 프로젝트를 빌드 웹팩 사용하여,이 프로젝트는 JS, HTML / CSS, 이미지 파일이 포함되어 있습니다. 프로젝트가 제대로 건설하고하고 실행 내장 dev에 서버에서 할 수 있도록.
그것은 수행해야합니다 :
- 입구 구성 입력.
- 관련 : 그것은 예를 들어, 생산 또는 개발 모드 패키지에 명령에 매개 변수를 추가 한 후 모든 시간을 구성 할 필요가 없습니다에 올 때.
- 구성 로더, 그래서 웹팩는 CSS, 사진 및 기타 파일을 포장 할 수 있습니다.
- 구성 플러그인 패키지 HTML, 추출 CSS.
- 프로젝트를 실행하십시오.
참고 : 모든 명령은 프로젝트의 루트 디렉토리에 수행 할 것입니다.
3. 시작 건물 프로젝트
건물 3.1 기준
이 방법의 첫 번째 기사에 따르면, 우리는 먼저 기본 프로젝트 blog2을 만들어 :
SRC 사용자 정의 폴더, 개인 습관에 따라 다음과 같은 구조를 만들 :
3.2 구성 준비
(참고 많은 수의 공식 구성 예)를 다음과 같이 루트 디렉토리 webpack.config.js 새 프로필에서 (package.json과 유사), 구성 파일의 기본 구조의 내용은 다음과 같습니다
CONST 경로 = ( '패스'요구 ); module.exports = { };
주 : 이후의 모든 단계가 이전 단계까지 기본 구성 증가에 배치되며, 현재의 구성이 굵은 단계, 이해를 용이하게하기 위해, 전체 구성 프로필에서 볼 수 있도록하는 것입니다.
4 웹팩 구성 관리 프로젝트를 시작
4.1 입출구 구성
CONST 경로 = ( '패스'요구 ); module.exports = { 입구 : './src/js/index.js' , 출력 { 경로 : path.resolve (__ dirname은, 'DIST' ) 이름 : '의 JS / 1 세대 [해시] .bundle.js' } };
항목 : 파일 경로를 구성하는 입구,
산출:
경로 : 결과 폴더의 보존의 경로와 이름, 우리가, DIST 사용
파일명 : 포장 후의 파일명 이름의 해시 값이 생성 될 수있다 [해시]을 사용하여, (테이프로는, 예를 들면, 예 DIST / JS 폴더 포장되어 있음).
4.2 구성 패키지 모드
우리가 말했다 이전 기사, 웹팩이 개발 모델 및 생산 환경, 구성되지 않은 경우 경고를 생성합니다, 우리가 이전에 실행 매개 변수를 수행하기 위해 사용하고, 지금 우리는 그래서 더, 구성 파일에 추가 편의상, 다음과 같은 구성 :
CONST 경로 = ( '패스'요구 ); module.exports = { 입구 : './src/js/index.js' , 출력 { 경로 : path.resolve (__ dirname은, 'DIST' ) 이름 : '의 JS / 1 세대 [해시] .bundle.js' } 모드 : '생산' };
모드 : 두 개의 매개 변수, 개발 모델이 있습니다 개발, 생산 모델 생산
4.3 dev에 서버 구성
우리는 사후 구성 콘센트가 패키지를 실행할 수 있습니다, 입구. 그러나 지난 글에서, 우리는이 확실히 개발 과정에 적용 할 수 없습니다 자신의 HTML과 JS를 구축 할 수있는 완성 된 패키지 테스트의 소개 테스트. 우리는 웹팩-dev에 서버를 통해 현지 서비스 및 코드를 디버깅을 시작 할 수 있습니다.
4.3.1 다운로드 및 설치
NPM 설치 웹팩-DEV-서버 -s를
4.3.2 구성
CONST 경로 = ( '패스'요구 ); module.exports = { 입구 : './src/js/index.js' , 출력 { 경로 : path.resolve (__ dirname은, 'DIST' ) 이름 : '의 JS / 1 세대 [해시] .bundle.js' } 모드 : '생산' , devServer : { contentBase : './dist' , 인라인 : 사실 } };
devServer :
contentBase : 디렉토리를 실행해야
인라인 : 실시간 업데이트 여부
포트 : 포트 번호를 설정할 수 있습니다
4.3.3 간체 구성
일반적으로 우리는 명령은 시작 :
웹팩-DEV-서버
너무 많은 문제는, 우리는 모양을 구성 package.json에 갈 수 있습니다 :
스크립트에서이 하나, 당신은 명령을 구성 할 수 있습니다 NPM 정의를 실행하고, 우리는 함께 붙어 :
"스크립트" : { "DEV": "웹팩-DEV-서버 --open --inline" }
자동 --inline를 대신하여 실시간으로 브라우저 페이지 새로 고침을 열 --open를 대신하여
일단 구성되면, 우리는 콘솔 입력 :
NPM 실행 DEV
당신은 우리가 현재 HTML 파일을 포장하지 않기 때문에 시작 후, 우리는 브라우저에서 실제로 공개, 파일 디렉토리가 아닌 HTML 페이지, 프로젝트를 시작할 수 있습니다.
4.4 구성 로더
우리가 웹팩 패키지가 아닌 JS 파일을 필요로하는 경우에, 우리는 CSS, 사진 및 기타 파일 패키지를 포함한 설치 구성을 수행해야합니다. 로더의 유형은 매우 수있는 공식 웹 사이트 로더 모듈 자신의 프로젝트에 대한 찾기 로더. 다음으로 우리는 로더 프로젝트를 설치해야합니다 :
4.4.1 다운로드 및 설치 :
장착 스타일 로더 CSS-로더 스타일의 CSS를 포장하는 데 사용
NPM 설치 스타일 로더 CSS 로더 -s를
설치 파일 로더 파일을 패키지로 사용을
NPM 설치 파일 -loader -s
설치 HTML-withimg 로더 html로에서 그림을 포장하는 데 사용을
NPM 설치 HTML-withimg 로더가 -s
4.4.2 구성 :
CONST 경로 = ( '패스'요구 ); module.exports = { 입구 : './src/js/index.js' , 출력 { 경로 : path.resolve (__ dirname은, 'DIST' ) 이름 : '의 JS / 1 세대 [해시] .bundle.js' } 모드 : '생산' , devServer : { contentBase : './dist' , 인라인 : 사실 }, 모듈 { 규칙 : [ {시험 : /\.css$/, 사용 : [ '스타일 로더', ' CSS 로더 ' ]}, {시험 : /\.(jpg|png|jpeg)$/ 사용'}, {시험 : /\.html$/ 사용 ', HTML withimg 로더' } ] } };
참고 : 구성 할 때 스타일 로더의 앞에 배치 할 필요가, 또는 오류 일 것이다.
구성 단위:
규칙 :
테스트 : 파일이 정규 표현식 매칭, 지원을 나타냅니다.
사용 대응 로더를 수행, 다음 값이 파라미터 수 있으며, URL을 마찬가지로 제한 파일 크기를 지칭 이름은 경로 설정 파일 이름 [이름] 원래 파일 이름 [EXT] 오리지널 파일 확장자이다.
4.5 플러그인 구성 플러그인
우리는 프론트 로더가 웹팩 패키지 CSS, 이미지, 우리가 지금 필요한 HTML 콘텐츠 패키지 구성을 할 수 있습니다 구성.
우리는 또한 항목 페이지로, src 디렉토리에 index.html 파일을 작성해야합니다.
4.5.1 다운로드 및 설치
HTML 파일을 패키징하는 데 사용되는 HTML-웹팩 - 플러그인을 다운로드하여 설치
NPM 설치 HTML-웹팩 - 플러그인 -s를
다운로드 및 설치 , 메모를 CSS를 분할 추출물 텍스트 웹팩 - 플러그인 패키지를 : 당신이 @next의 최신 버전을 설치해야합니다
NPM 설치 추출물 - 텍스트 웹팩 - 플러그인 @ 다음 -s
4.5.2 구성
CONST 경로 = ( '패스'요구 ); const를 HtmlWebpackPlugin = 필요 ( 'HTML-웹팩 - 플러그인' ); const를 ExtractTextPlugin = 필요 ( '추출 텍스트-웹팩 - 플러그인' ); module.exports = { 입구 : './src/js/index.js' , 출력 { 경로 : path.resolve (__ dirname은, 'DIST' ) 이름 : '의 JS / 1 세대 [해시] .bundle.js' } 모드 : '생산' , devServer : { contentBase : './dist' , 인라인 : 사실 } 모듈 : { 규칙 : { 시험 : /\.css$/ , 사용 : ExtractTextPlugin.extract ({ 대체 : '스타일 로더' , 용도 : [{ 로더 : 'CSS 로더' }] publicPath : '../' }) }, { 시험 : /\.(jpg|png|jpeg)$/는 , 사용 '?.. 파일 로더 제한 = 1024 = 이름 / IMG / [이름] [내선] }, { 시험 : /\.html$/ , 사용 : 'HTML-withimg 로더를' } ] }, 플러그인 : 새로운 새로운 ExtractTextPlugin ( './ CSS / [이름] .CSS' ), 새로운 새로운 HtmlWebpackPlugin ({ 틀 : './src/index.html' , 파일 이름 : 'index.html을'은 , 스크립트의 축소 : { // 따옴표 제거 removeAttributeQuotes를 : true로 , // 참고 제거 removeComments를 : true로 , // 빈 속성 제거 removeEmptyAttributes를 : true로 , // 전송 공간 제거 collapseWhitespace를 : true로 } }) ] };
처음에 우리는 플러그인의 도입을 필요로합니다,
별도의 플러그 배열로 사용하는 CSS는 로더에 맞게 필요
ExtractTextPlugin.extract 구문으로
publicPath 프로젝트의 경로를 조정, 경로 부하를 설정
플러그인 : 플러그 배열
새로운 추출물 텍스트-웹팩 - 플러그인 개체 만들기
설정 추출 CSS의 위치와 이름
새 HTML-웹팩 - 플러그인 개체 만들기
템플릿 : 메인 HTML 파일의 내용을 사용하여
수입 '../css/index.css'
을 console.log ( '안녕하세요 단어');
SRC / CSS / index.css :
몸 { 배경 컬러 : 아쿠아 마린 ; } #의 div1 { 폭 : 200 픽셀 ; 높이 : 100 픽셀 ; 배경 이미지 : URL이 ( 'IMG / 1.JPG을 ../') ; }
SRC / IMG / 1.JPG
SRC / 된 index.html
<! DOCTYPE HTML > < HTML LANG = "에서 zh-CN" > < 선두 > < 메타 캐릭터 = "UTF-8" > < 타이틀 > blog2 </ 타이틀 > < 메타 HTTP-당량 = "X-UA 호환" 콘텐츠 = " IE = 가장자리 " > < 메타 이름 ="뷰포트 " 콘텐츠 ="초기 스케일 = 1.0, 사용자 확장 = NO 폭 = 기기 폭 " > </ 헤드 > < 본문 > = "div1" > </ DIV > < DIV ID = "DIV2" > 第二个DIV < IMG의 SRC = "../ SRC / IMG / 1.JPG" ALT = "T1"폭 = "300 픽셀" > </ DIV > </ 몸 > </ HTML >
다음과 같이 시작 후, 효과는 다음과 같습니다
JS, CSS, IMG는 프로젝트가 작은 파트너를 다운로드 할 필요가있다, 구축되었음을 나타내는 일반적으로로드 할 수 있습니다.
6. 요약
웹팩 기능이 매우, 매우, 우리는 가장 좋은 방법은 문서를 보는 것을 배운다. 물론, 나를 위해, 흰색, 문서 이해가 안 간단하게 보일 수도 있지만, 지속적으로 처리하는 동안, 천천히 명확 웹팩의 변화를 인식하기 시작했다. 나는 새로운 학교 학생들도 인터넷에서 예를 살펴 수 있다는 제안에 대한 일반적인 이해가, 무엇을 할 수 있는지, 그것이 무엇인지, 그리고 기본 루틴 후, 다음 문서로 이동이 더 편리 할 것입니다.
그래서 Benpian 완료된 작은 프로젝트를 구축 웹팩 핵심 개념을 기반으로, 그리고 다시는 JS의 다른 프레임 워크 또는 관행 통합을 배우고 갈 수 있습니다.