이 문서에서는 webpack의 html 파일 처리에 대해 설명합니다. 필요한 친구는 이를 참조할 수 있습니다.
html 파일을 처리하는 이유
우리의 모든 방법은 dist 파일 폴더에 패키지되어 있으며, html 는 우리가 정의한 폴더 아래에 있습니다. src를 통해 이러한 dist 폴더의 js를 하나씩 수동으로 가져오면 너무 신뢰할 수 없습니다
그래서 해결책은 다음과 같습니다.
Step 1 : 다운로드
npm install --save-dev extract-text-webpack-plugin
step 2 : webpack.config.js
configuration htmlwebpackplugin의 구성 항목은 다음과 같습니다. webpack.config.js
配置
其中HtmlWebpackPlugin的配置项有:
Name | 类型 | Description |
---|---|---|
title | {String} | 用于生成的HTML文档的标题 |
filename | {String} | 要生成HTML的文件。可以指定目录 |
template | {String} | 依据的模板文件 |
inject | {Boolean|String} | 将js资源注入到页面哪个部位,值有:true ‘head’ ‘body’ false,当传递true或’body’所有JavaScript资源将被放置在正文元素的底部。’head’将脚本放置在head元素中 |
favicon | {String} | 将给定的图标路径添加到输出HTML |
hash | {Boolean} | 如果true将webpack所有包含的脚本和CSS文件附加一个独特的编译哈希。这对缓存清除非常有用 |
chunks | {?} | 放入你需要引入的资源模块 |
excludeChunks | {?} | 不放入你某些资源模块 |
预期目标: 我的项目是一个多入口文件的项目,希望每一个入口页面引入对应的js模块和css
比如login页面引入login的js和css、index引入对应js和css
webpack.config.js
配置如下:
const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = { entry:{ 'commom':['./src/page/common/index.js'], 'index':['./src/page/index/index.js'], 'login':['./src/page/login/index.js'] }, output:{ path:path.resolve(__dirname, 'dist'), filename:'js/[name].js' }, module:{ rules:[ { test:/\.css$/, use:ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } ] }, plugins:[ //独立通用模块 new webpack.optimize.CommonsChunkPlugin({ name : 'common', filename : 'js/base.js' }), //独立打包css new ExtractTextPlugin('css/[name].css'), //对html模板进行处理,生成对应的html,引入需要的资源模块 new HtmlWebpackPlugin({ template:'./src/view/index.html',//模板文件 filename:'view/login/index.html',//目标文件 chunks:['commom','login'],//对应加载的资源 inject:true,//资源加入到底部 hash:true//加入版本号 }) ] } module.exports= configs
然后打包结果如下
其中生成的目标文件:
为什么去处理html文件
我们所有的方法都打包到了dist的文件夹下面,而我们的html是在自己定义的文件夹下面,如果自己手动再去一个一个src引入这些dist文件夹下的js,那么也有些太不靠谱了
所以解决办法是:
第一步:下载
npm install --save-dev extract-text-webpack-plugin
第二步:webpack.config.js
title
filename | {String} | |
---|---|---|
template | {String} | |
inject | {Boolean|String} | 페이지의 어느 부분에 js 리소스를 삽입할지에 따라 템플릿 파일을 지정할 수 있습니다. 값은 다음과 같습니다. true 'head' ' body' false, true 또는 'body'를 전달하면 모든 JavaScript 리소스가 body 요소의 맨 아래에 배치됩니다. 'head'는 스크립트를 헤드 요소에 배치합니다. |
favicon | {String} | 주어진 아이콘 경로를 출력 HTML |
hash | {Boolean} | 에 추가합니다. true이면 webpack에 스크립트가 모두 포함됩니다. 및 CSS 파일에는 고유한 컴파일 해시가 추가됩니다. 이는 캐시 삭제에 매우 유용합니다 |
chunks | {?} | 가져와야 하는 리소스 모듈을 넣으세요 |
excludeChunks | {?} | 일부 리소스 모듈은 넣지 마세요 |
예상 목표: 내 프로젝트는 여러 항목 파일이 있는 프로젝트입니다. 각 항목 페이지에 해당 js 모듈과 css가 소개되기를 바랍니다. | 예를 들어 로그인 페이지에는 로그인 js 및 css가 소개됩니다. index는 해당 js와 css를 소개합니다||
생성된 대상 파일: |
webpack.config.js
Configuration🎜🎜HtmlWebpackPlugin의 구성 항목은 다음과 같습니다. 🎜🎜🎜🎜 🎜Name🎜🎜Type🎜🎜 Description🎜🎜🎜🎜🎜🎜title🎜🎜{String}🎜🎜생성된 HTML 문서의 제목🎜🎜🎜🎜filename🎜🎜{String}🎜🎜HTML을 생성하는 파일입니다. 🎜🎜🎜🎜template🎜🎜{String}🎜🎜🎜🎜🎜🎜inject🎜🎜{Boolean|String}🎜🎜페이지의 어느 부분에 js 리소스를 삽입할지에 따라 템플릿 파일을 지정할 수 있습니다. 값은 다음과 같습니다. true 'head' ' body' false, true 또는 'body'를 전달하면 모든 JavaScript 리소스가 body 요소의 맨 아래에 배치됩니다. 'head'는 스크립트를 헤드 요소에 배치합니다. 🎜🎜🎜🎜favicon🎜🎜{String}🎜🎜주어진 아이콘 경로를 출력 HTML🎜🎜🎜🎜hash🎜🎜{Boolean}🎜🎜에 추가합니다. true이면 webpack에 스크립트가 모두 포함됩니다. 및 CSS 파일에는 고유한 컴파일 해시가 추가됩니다. 이는 캐시 삭제에 매우 유용합니다🎜🎜🎜🎜chunks🎜🎜{?}🎜🎜가져와야 하는 리소스 모듈을 넣으세요🎜🎜🎜🎜excludeChunks🎜🎜{?}🎜🎜일부 리소스 모듈은 넣지 마세요🎜 🎜🎜🎜预期目标: 我的项目是一个多入口文件的项目,希望每一个入口页面引入对应的js模块和css
比如login页面引入login的js和css、index引入对应js和css
webpack.config.js
配置如下:
const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = { entry:{ 'commom':['./src/page/common/index.js'], 'index':['./src/page/index/index.js'], 'login':['./src/page/login/index.js'] }, output:{ path:path.resolve(__dirname, 'dist'), filename:'js/[name].js' }, module:{ rules:[ { test:/\.css$/, use:ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } ] }, plugins:[ //独立通用模块 new webpack.optimize.CommonsChunkPlugin({ name : 'common', filename : 'js/base.js' }), //独立打包css new ExtractTextPlugin('css/[name].css'), //对html模板进行处理,生成对应的html,引入需要的资源模块 new HtmlWebpackPlugin({ template:'./src/view/index.html',//模板文件 filename:'view/login/index.html',//目标文件 chunks:['commom','login'],//对应加载的资源 inject:true,//资源加入到底部 hash:true//加入版本号 }) ] } module.exports= configs
然后打包结果如下
其中生成的目标文件:
相关推荐:
위 내용은 HTML 파일의 Webpack 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!