html-webpack-plugin之配置自定義模板
主要內容:
- inject: true | body | head |false
- chunks:允許插入到模板中的一些chunk,不配置此項預設會將entry中所有的thunk注入到模板中。在配置多個頁面時,每個頁面注入的thunk應該是不相同的,需要通過該配置為不同頁面注入不同的thunk。
- excludeChunks:這個與chunks配置項正好相反,用來配置不允許注入的thunk。
-
true|body
: 所有JavaScript資源插入到body元素的底部 -
head
: 所有JavaScript資源插入到head元素中。 -
false
:所有靜態資源css和JavaScript都不會注入到模板檔案中,一般需要自定義模板配置的時候使用。
一般我們基本不會設定js在head裡面,會導致最外層的例項化掛載失敗(就是查詢不到dom)。
var HtmlWebpackPlugin = require('html-webpack-plugin')
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html', //本地自定義模板
inject: true|body
})
一般形式
如果設定為false會如何?
我們可以試一下,無疑,頁面肯定是出不來的。
什麼情況下我們會設定為false呢?
我們一步步往下看
- 配置多個html頁面
html-webpack-plugin的一個例項生成一個html檔案,如果單頁應用中需要多個頁面入口,或者多頁應用時配置多個html時,那麼就需要例項化該外掛多次;
如上面所述,頁面設定了不同的模板;在專案中,我們也可以所有的頁面用同一個模板。
除了上面這種配置方式,還有另外一種配置自定義模板的方式可以實現需求。具體的做法,藉助於模板引擎來實現,例如外掛沒有配置loader時預設支援的ejs模板引擎,下面就以ejs模板引擎為例來說明。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><%= htmlWebpackPlugin.options.title %></title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
<meta name="keywords" content="" />
<meta name="description" content="運營管理系統" />
<% for (var css in htmlWebpackPlugin.files.css) { %>
<link href="<%=htmlWebpackPlugin.files.css[css] %>" rel="stylesheet">
<% } %>
</head>
<body>
<div id="app"></div>
<script>
</script>
<% for (var chunk in htmlWebpackPlugin.files.chunks) { %>
<script type="text/javascript" src="<%=htmlWebpackPlugin.files.chunks[chunk].entry %>"></script>
<% } %>
</body>
</html>
htmlWebpackPlugin其實這是html-webpack-plugin外掛在生成html檔案過程中產生的資料,這些資料對html模板檔案是可用的。
<script>
var json = JSON.parse('<%= JSON.stringify(htmlWebpackPlugin)%>')
console.log(json)
</script>
相關文章
- Hexo 主題開發之自定義模板Hexo
- 自定義 Word 模板
- 自定義AndroidStudio程式碼模板Android
- IDEA自定義註釋模板Idea
- 建立自定義專案模板
- 自定義Android Studio程式碼模板Android
- .NET Core - 自定義專案模板
- MyBatis-Plus Generator自定義模板MyBatis
- ASP.NET Core - 配置系統之自定義配置提供程式ASP.NET
- 自定義Vue-cli專案模板Vue
- VS2019 自定義專案模板
- Laravel學習筆記之Artisan命令生成自定義模板的方法Laravel筆記
- 分散式監控系統之Zabbix巨集、模板和自定義item分散式
- 如何自定義自己的vue-cli模板Vue
- 易優cms模板在哪自定義表單
- php 自定義配置檔案PHP
- _008_SpringBoot_自定義配置Spring Boot
- 打包策略 自定義打包配置
- 自定義View之SwitchViewView
- MapReduce之自定義OutputFormatORM
- MapReduce之自定義InputFormatORM
- Mybaitis之自定義TypeHandlerAI
- Iceworks 2.8.0 釋出,自定義你的 React 模板React
- OpenAPI生成器中實現自定義模板API
- Django自定義模板標籤與過濾器Django過濾器
- docker官方mysql映象自定義配置DockerMySql
- samba 基本配置及自定義控制Samba
- Java之自定義異常Java
- Android 自定義 View 之 LeavesLoadingAndroidView
- NLog自定義Target之MQTTMQQT
- grain-Edu-Note part11 自定義模板列AI
- 自定義元件服務註冊配置元件
- SpringBoot讀取自定義配置檔案Spring Boot
- 如何自定義終端顯示配置
- @ConfigurationProperties實現自定義配置繫結
- springboot如何使用自定義配置檔案Spring Boot
- onethink自定義外掛 怎麼在模板裡面使用模板的繼承?繼承
- 自定義View事件之進階篇(四)-自定義Behavior實戰View事件
- SpringBoot基礎系列之自定義配置源使用姿勢例項演示Spring Boot