Webpack 構(gòu)建項(xiàng)目(三)

第三節(jié)主要對(duì)應(yīng)視頻教程上,針對(duì)于html-webpack-plugin這個(gè)的詳細(xì)講解,對(duì)此做一下筆記。
先在webpack.config.js 聲明一個(gè)變量。

var htmlWebpackPlugin = require('html-webpack-plugin');

然后就在plugins進(jìn)行屬性的設(shè)置 如title

plugins:[
    new htmlWebpackPlugin({
      filename:'index.html',
      template:'index.html',//此處可以指定一個(gè)路徑 如  src/temp/index.html
      inject:'head',
      title:'webpack is bad', // title 屬性
      date:new Date()   //date 屬性
    })
  ]

接著就要在模板文件中使用這些屬性。這種寫(xiě)法視頻中提到的是模板文件的寫(xiě)法

(1)<%=  %> 直接取值
(2)<%   %> 運(yùn)行JS代碼
<title><%= htmlWebpackPlugin.options.title %></title>   
or
<%= htmlWebpackPlugin.options.date %>

接下來(lái)開(kāi)始對(duì)htmlWebpackPlugin 中的屬性進(jìn)行遍歷,查看我們能夠從htmlWebpackPlugin取到的信息。

<% for (var key in htmlWebpackPlugin) {%>
      <%=key %>
<% } %>

最終生成 files、options 這兩個(gè)結(jié)果。我們?cè)诶^續(xù)對(duì)這兩個(gè)Key進(jìn)行遍歷

<% for (var key in htmlWebpackPlugin.files) {%>
      <%=key %> : <%= JSON.stringify(htmlWebpackPlugin.files[key]) %>
 <!-- 對(duì)遍歷出來(lái)的結(jié)果進(jìn)行字符串化,使用JSON.stringify()-->
<% } %>

<% for (var key in htmlWebpackPlugin.options) {%>
      <%=key %> : <%= JSON.stringify(htmlWebpackPlugin.options[key]) %>
<% } %>

結(jié)果如下所示 其中,對(duì)options的遍歷結(jié)果中我們已經(jīng)使用了其中的inject filename 等。更多的可以去官網(wǎng)看html-webpack-plugin options 屬性詳解

<body>
    <p>Hello World</p>
    <p>Hello YYY</p>
    Mon Dec 11 2017 22:36:03 GMT+0800 (CST)
    

      publicPath : ""
    
      chunks : {"main":{"size":27,"entry":"js/main.js","hash":"f0883f49cc458b4e9f68","css":[]},"a":{"size":20,"entry":"js/a.js","hash":"b132e09a19bc030c1a4a","css":[]}}
    
      js : ["js/main.js","js/a.js"]
    
      css : []
    
      manifest : 
    

    <!--對(duì)options的遍歷-->
      template : "/Users/wuxinbo/Desktop/前端/個(gè)人練習(xí)/WebpackDemo/muke-Webpack/node_modules/html-webpack-plugin/lib/loader.js!/Users/wuxinbo/Desktop/前端/個(gè)人練習(xí)/WebpackDemo/muke-Webpack/index.html"
    
      filename : "index.html"  
    
      hash : false
    
      inject : "head"
    
      compile : true
    
      favicon : false
    
      minify : false
    
      cache : true
    
      showErrors : true
    
      chunks : "all"
    
      excludeChunks : []
    
      title : "webpack is bad"
    
      xhtml : false
    
      date : "2017-12-11T14:36:03.540Z"
    
  </body>

在得知這些屬性后就可以進(jìn)行使用,可以在模板文件中對(duì)打包好的文件進(jìn)行引用。如下所示:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title><%= htmlWebpackPlugin.options.title %></title>
    <!-- 直接引用chunks中的內(nèi)容 -->
    <script type="text/javascript" src="<%= htmlWebpackPlugin.files.chunks.main.entry %>"></script>
  </head>
  <body>
    <p>Hello World</p>
    <p>Hello YYY</p>
    <%= htmlWebpackPlugin.options.date %>
    <!-- 直接引用chunks中的內(nèi)容 -->
    <script type="text/javascript" src="<%= htmlWebpackPlugin.files.chunks.a.entry%>"></script>

  </body>
</html>

同時(shí)也需要對(duì)webpack.config.js中的 plugins的 inject屬性進(jìn)行設(shè)置,官網(wǎng)對(duì)inject描述:當(dāng)inject的值為 true 或者'body' 時(shí),所有JS源都會(huì)放置在body標(biāo)簽內(nèi),值為'head',就把所有JS源都放置在head標(biāo)簽內(nèi)。如設(shè)置為false,則不對(duì)其進(jìn)行定義。由于以上代碼一個(gè)放進(jìn)了head,一個(gè)放進(jìn)了body,那么就需要設(shè)置為false.

關(guān)于pubulicPath 相當(dāng)于一個(gè)占位符。當(dāng)設(shè)置好參數(shù)后,使所有引用的相對(duì)路徑變?yōu)榻^對(duì)路徑。

output:{
    path:path.resolve(__dirname,'dist'),
    filename:'js/[name].js',
    publicPath:'https://cdn.com/'
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GitChat技術(shù)雜談 前言 本文較長(zhǎng),為了節(jié)省你的閱讀時(shí)間,在文前列寫(xiě)作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,867評(píng)論 7 110
  • 原文http://www.cnblogs.com/libin-1/p/6596810.html 版本號(hào) vue-c...
    tengrl閱讀 3,864評(píng)論 0 0
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Webpack學(xué)習(xí)總結(jié) 此文只是自己學(xué)習(xí)webpack的一些總結(jié),方便自己查閱,閱讀不變,非常抱歉??! 下載安裝:...
    Lxs_597閱讀 1,082評(píng)論 0 0
  • 無(wú)意中看到zhangwnag大佬分享的webpack教程感覺(jué)受益匪淺,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,358評(píng)論 7 35

友情鏈接更多精彩內(nèi)容