
? 패키징해야 하며 html 파일을 패키징해야 합니다. 가져온 js 파일의 경로가 바뀌었습니다.
html을 패키징하기 위해 webpack을 사용하면 다음과 같은 이점이 있습니다.
(1) 패키징된 js 파일은 자동으로 html에 도입될 수 있습니다.
(2) html이 패키징된 후에도 여전히 빌드 폴더에 생성되어 패키징된 js 파일과 함께 저장됩니다.
(3)
webpack에서
1. 플러그인을
기본적으로
설치합니다.JS 및 JSON 파일만 이해할 수 있으며 다른 파일 패키징을 지원해야 합니다. 모든 유형의 파일에는 해당 플러그인 또는 로더를 설치해야 합니다.
HTML 파일을 패키징해야 하는 경우 먼저 html-webpack-plugin 플러그인을 설치해야 합니다.
npm install html-webpack-plugin -D
이 플러그인의 역할:
기본적으로 내보내기 아래에 html 파일을 생성합니다. 그런 다음 모든 JS/CSS 리소스를 가져올 수도 있습니다.
html 파일을 직접 지정하고 이 html 파일에 리소스를 추가할 수도 있습니다.
2.
html-webpack-plugin 플러그인을 설치한 후 다음을 수행해야 합니다
webpack.config.js 파일에서 구성하십시오:
// ...
// 1. 플러그인 소개 const HtmlWebpackPlugin = require('html-webpack-plugin');
모듈.수출 = {
// ...
// 2. 플러그인에서 플러그인 플러그인을 구성합니다. [
새로운 HtmlWebpackPlugin({
template: 'index.html', // 항목 템플릿 파일을 지정합니다(프로젝트 루트 디렉터리 기준).
filename: 'index.html', // 출력 파일 이름과 위치를 지정합니다(출력 디렉터리 기준).
// 기타 플러그인 구성 항목은 해당 플러그인 공식 문서를 참고하세요})
]
} 세부 구성 링크: https://www.npmjs.com/package/html-webpack-plugin
입력 템플릿 파일의 경로와 파일명이 구성과 일치하는지 확인하신 후 컴파일하시면 됩니다.
3. 여러 JS 항목과 여러 HTML 상황을 구성하는 경우
여러 HTML 파일을 컴파일해야 하며 파일은 서로 다른 JS 파일을 가져와야 합니다. 그러나 기본적으로 chunk 된 HTML 파일은 모든 패키지된 JS 파일을 가져올 수 있습니다. JS를 배포하도록 지정되었습니다.
const path = require('경로');
// 1. 플러그인 소개 const HtmlWebpackPlugin = require('html-webpack-plugin');
모듈.수출 = {
// ...
// 2. JS 항목 구성(여러 항목)
항목: {
공급업체: ['./src/jquery.min.js', './src/js/common.js'],
색인: './src/index.js',
카트: './src/js/cart.js'
},
//내보내기 출력 구성: {
파일 이름: '[이름].js',
경로: path.resolve(__dirname, 'build/js')
},
// 3. 플러그인 구성: [
새로운 HtmlWebpackPugin({
템플릿: 'index.html',
파일 이름: 'index.html',
// 청크를 사용하여 청크를 가져올 JS 파일을 지정합니다: ['index', 'vendor']
}),
// 컴파일해야 하는 HTML 수, 필요한 새 플러그인 수 new HtmlWebpackPlugin({
템플릿: './src/cart.html',
파일 이름: 'cart.html',
덩어리: ['장바구니', '판매자']
})
]
} 팁: 여기서 주목해야 할 것은 컴파일해야 하는 HTML 파일 수, 새로운
HtmlWebpackPlugin몇 번이나 생성해야 하는지입니다.
위 구성이 성공적으로 컴파일되면 출력은 다음과 같습니다
.
|__ index.html #index.js 및 Vendor.js 소개
|__ cart.html #cart.js 및 Vendor.js 소개
|__ js
|__ Vendor.js # jquery.min.js 및 common.js에 의해 생성됨 |__ index.js # index.js에 의해 생성됨 |__ cart.js # 1, webpack. config.js 구성
const HTMLWebpackPlugin = require('html-webpack-plugin')
...
플러그인: [
// html-webpack-plugin html 패키징 구성 이 플러그인은 새로운 HTMLWebpackPlugin({
template: "./index.html", // 템플릿에 패키징된 상대 또는 절대 경로(패키징 대상)
title: 'Home', // 생성된 HTML 문서에 사용되는 제목 hash: true, //true는 포함된 모든 스크립트 및 CSS 파일에 고유한 webpack 컴파일 해시를 추가합니다. 주로 캐시를 지우는 데 사용되며,
minify: { // HTML을 압축합니다.
CollapseWhitespace: true, // 공백 축소 keepClosingSlash: true, // 닫힌 간격 유지 RemoveComments: true, // 주석 제거 RemoveRedundantAttributes: true, // 중복 속성 제거 RemoveScriptTypeAttributes: true, // 스크립트 스크립트 유형 속성 제거 RemoveStyleLinkTypeAttributes: true, // 스타일 링크 유형 속성 삭제 useShortDoctype: true, // 짧은 문서 유형 사용 PreserveLineBreaks: true, // 줄바꿈 유지 minifyCSS: true, // 텍스트 내 CSS 압축
minifyJS: true, // 텍스트 내 js를 압축합니다.
}
}),
],
... 2. 현재 index.html
<!DOCTYPE html>
<html 랭="">
<머리>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>웹팩데모</title>
</head>
<본문>
<div id="앱">
HTML 패키징 구성</div>
</body>
</html> 3. 이때 index.js
import './../css/index.less'
함수 추가(x,y) {
x+y 반환
}
console.log(add(2,3)); 3. 콘솔 웹팩에 패키지를 입력하고 패키지 출력 파일에 추가 index.html이 있는지 확인합니다. 내용은 다음과 같습니다.
<!DOCTYPE html>
<html 랭="">
<머리>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>웹팩데모</title>
<script defer src="index.js"></script></head>
<본문>
<div id="앱">
HTML 패키징 구성</div>
</body>
</html> <script defer="" src="index.js"></script> 는 자동으로
브라우저에 도입되어 패키지된 출력 index.html을 열며 스타일이 효과가 있고 컨트롤이 있음을 알 수 있습니다. 장치도 정상적으로 출력됩니다.

