摘要:上文我們對(duì)的實(shí)例進(jìn)行了遍歷分析,講解了幾個(gè)常用屬性以及自定義屬性的添加,本文,我們繼續(xù)深入他的配置選項(xiàng)的探討一選項(xiàng)這個(gè)屬性非常有用,可以指定某個(gè)頁(yè)面加載哪些如文件我們可以用他做多個(gè)頁(yè)面模板的生成比如,我們?cè)趯?shí)際開發(fā)中,做一個(gè)博客網(wǎng)站,一
上文我們對(duì)html-webpack-plugin的實(shí)例htmlWebpackPlugin進(jìn)行了遍歷分析,講解了幾個(gè)常用屬性( inject, minify )以及自定義屬性的添加,本文,我們繼續(xù)深入他的配置選項(xiàng)的探討.
一、chunks選項(xiàng)
這個(gè)屬性非常有用,可以指定某個(gè)頁(yè)面加載哪些chunk( 如:js文件 )
我們可以用他做多個(gè)頁(yè)面模板的生成. 比如,我們?cè)趯?shí)際開發(fā)中,做一個(gè)博客網(wǎng)站,一般來說有首頁(yè),文章列表頁(yè),文章詳情頁(yè)等等,這些頁(yè)面都有一個(gè)特點(diǎn),都要引入一些公共的js文件以及該頁(yè)面特有的js文件,比如:
首頁(yè)( index.html ) 引入 main.js, index.js
文章列表頁(yè)( list.html ) 引入 main.js, list.js
文章詳情頁(yè)( detail.html ) 引入 main.js, detail.js
傳統(tǒng)方式,一個(gè)個(gè)的打開文件,拷貝修改,如果后期維護(hù),又是一堆文件中,查找,拷貝,修改。很容易出錯(cuò),而且效率低下,我們看下webpack是如何提高效率,開啟前端工業(yè)化開發(fā)革命道路
webpack.dev.config.js文件代碼:
var HtmlWebpackPlugin = require("html-webpack-plugin"); module.exports = { entry : { main : "./src/js/main.js", index : "./src/js/index.js", list : "./src/js/list.js", detail : "./src/js/detail.js" }, output : { //__dirname,就是當(dāng)前webpack.config.js文件所在的絕對(duì)路徑 path : __dirname + "/dist", //輸出路徑,要用絕對(duì)路徑 filename : "js/[name]-[hash].bundle.js", //打包之后輸出的文件名 }, plugins: [ new HtmlWebpackPlugin({ template : "./index.html", title : "博客首頁(yè)-by ghostwu", filename : "index.html", inject : true, chunks : ["main", "index"] }), new HtmlWebpackPlugin({ template : "./index.html", title : "列表頁(yè)-by ghostwu", filename : "list.html", inject : true, chunks : ["main", "list"] }), new HtmlWebpackPlugin({ template : "./index.html", title : "文章詳情頁(yè)-by ghostwu", filename : "detail.html", inject : true, chunks : ["main", "detail"] }) ] };
然后在src的js目錄下面,創(chuàng)建main.js, index.js,list.js,detail.js文件,執(zhí)行打包( npm run d )就會(huì)在dist下面生成3個(gè)文件,各自引入到各自的js文件,下次要維護(hù)的時(shí)候,只要修改這個(gè)配置文件,再次打包就可以了,是不是很方便
二、excludeChunks選項(xiàng)
這個(gè)很好理解,就是有很多chunks,排除不要加載的
webpack.dev.config.js文件代碼:
var HtmlWebpackPlugin = require("html-webpack-plugin"); module.exports = { entry : { main : "./src/js/main.js", index : "./src/js/index.js", list : "./src/js/list.js", detail : "./src/js/detail.js" }, output : { //__dirname,就是當(dāng)前webpack.config.js文件所在的絕對(duì)路徑 path : __dirname + "/dist", //輸出路徑,要用絕對(duì)路徑 filename : "js/[name]-[hash].bundle.js", //打包之后輸出的文件名 }, plugins: [ new HtmlWebpackPlugin({ template : "./index.html", title : "博客首頁(yè)-by ghostwu", filename : "index.html", inject : true, excludeChunks : ["list","detail"] }), new HtmlWebpackPlugin({ template : "./index.html", title : "列表頁(yè)-by ghostwu", filename : "list.html", inject : true, excludeChunks : ["index","detail"] }), new HtmlWebpackPlugin({ template : "./index.html", title : "文章詳情頁(yè)-by ghostwu", filename : "detail.html", inject : true, excludeChunks : ["list","index"] }) ] };
把配置文件修改之后,再用npm run d執(zhí)行一次打包,跟使用chunks的效果是一樣的
三,把頁(yè)面src引入文件的方式,改成用script標(biāo)簽嵌入的方式,減少http請(qǐng)求( 提高加載性能)
要達(dá)到這個(gè)目的,我們?cè)侔惭b一個(gè)插件html-webpack-inline-source-plugin
安裝:npm install --save-dev html-webpack-inline-source-plugin
webpack.dev.config.js文件代碼:
var HtmlWebpackPlugin = require("html-webpack-plugin"); var HtmlWebpackInlineSourcePlugin = require("html-webpack-inline-source-plugin"); module.exports = { entry : { main : "./src/js/main.js", index : "./src/js/index.js", list : "./src/js/list.js", detail : "./src/js/detail.js" }, output : { //__dirname,就是當(dāng)前webpack.config.js文件所在的絕對(duì)路徑 path : __dirname + "/dist", //輸出路徑,要用絕對(duì)路徑 filename : "js/[name]-[hash].bundle.js", //打包之后輸出的文件名 }, plugins: [ new HtmlWebpackPlugin({ template : "./index.html", title : "博客首頁(yè)-by ghostwu", filename : "index.html", inject : true, excludeChunks : ["list","detail"], inlineSource : ".(js|css)$" //全部?jī)?nèi)嵌 }), new HtmlWebpackInlineSourcePlugin(), new HtmlWebpackPlugin({ template : "./index.html", title : "列表頁(yè)-by ghostwu", filename : "list.html", inject : true, excludeChunks : ["index","detail"] }), new HtmlWebpackPlugin({ template : "./index.html", title : "文章詳情頁(yè)-by ghostwu", filename : "detail.html", inject : true, excludeChunks : ["list","index"] }) ] };
執(zhí)行npm run d打包命令之后,就會(huì)把dist/index.html文件的js和css改成內(nèi)嵌方式
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/91933.html
摘要:上文我們講到了的配置和獲取數(shù)據(jù)的方式,本文,我們繼續(xù)深入的配置一插件中的除了自己定義了一些基本配置外,我們是可以任意的添加自定義的數(shù)據(jù)文件,就是當(dāng)前文件所在的絕對(duì)路徑輸出路徑,要用絕對(duì)路徑打包之后輸出的文件名教你學(xué)我們?cè)谥行略隽藗€(gè) 上文我們講到了options的配置和獲取數(shù)據(jù)的方式,本文,我們繼續(xù)深入options的配置 一、html-webpack-plugin插件中的options...
摘要:還記得我們上文中的文件嗎那里面的標(biāo)簽還是寫死的文件,那么怎么把他們變成動(dòng)態(tài)的文件,這個(gè)動(dòng)態(tài)生成的文件會(huì)動(dòng)態(tài)引入我們打包后生成的文件呢,我們可以使用插件,首先安裝這個(gè)插件,好的,接下來就開始用這個(gè)插件了官方參考文檔插件通用用法 還記得我們上文中的index.html文件嗎? 那里面的script標(biāo)簽還是寫死的index.bundle.js文件,那么怎么把他們變成動(dòng)態(tài)的index.html...
摘要:,我想大家應(yīng)該都知道或者聽過,是前端一個(gè)工具可以讓各個(gè)模塊進(jìn)行加載預(yù)處理再進(jìn)行打包。 webpack,我想大家應(yīng)該都知道或者聽過,Webpack是前端一個(gè)工具,可以讓各個(gè)模塊進(jìn)行加載,預(yù)處理,再進(jìn)行打包。現(xiàn)代的前端開發(fā)很多環(huán)境都依賴webpack構(gòu)建,比如vue官方就推薦使用webpack.廢話不多說,我們趕緊開始吧. 第一步、安裝webpack 新建文件夾webpack->再在web...
摘要:接著上文,重新在文件夾下面新建一個(gè)項(xiàng)目文件夾,然后用初始化項(xiàng)目的配置文件,然后安裝,然后創(chuàng)建基本的項(xiàng)目文件夾結(jié)構(gòu),好了,我們的又一個(gè)基本項(xiàng)目結(jié)構(gòu)就搭建好了第一開始通過文件配置我們的項(xiàng)目首先在項(xiàng)目文件夾下面,新建一個(gè)文件,這個(gè)文件可 接著上文,重新在webpack文件夾下面新建一個(gè)項(xiàng)目文件夾demo2,然后用npm init --yes初始化項(xiàng)目的package.json配置文件,然后安...
摘要:本文繼續(xù)接著上文,繼續(xù)寫下的其他配置用法一把兩個(gè)文件打包成一個(gè),怎么配置在上文中的中,用數(shù)組配置文件代碼,就是當(dāng)前文件所在的絕對(duì)路徑輸出路徑,要用絕對(duì)路徑打包之后輸出的文件名然后在目錄下面新建一個(gè)文件,代碼如下之前的文件的代碼告訴你怎么學(xué)習(xí) 本文繼續(xù)接著上文,繼續(xù)寫下webpack.config.js的其他配置用法. 一、把兩個(gè)文件打包成一個(gè),entry怎么配置? 在上文中的webpa...
閱讀 3063·2023-04-25 17:22
閱讀 1621·2019-08-30 15:54
閱讀 1338·2019-08-30 15:53
閱讀 1894·2019-08-30 15:43
閱讀 3189·2019-08-29 12:29
閱讀 1299·2019-08-26 11:37
閱讀 3360·2019-08-23 18:02
閱讀 1692·2019-08-23 14:15