明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

webpack對html文件的處理

[摘要]本篇文章給大家分享的是關(guān)于webpack對html文件的處理 ,步驟都很詳細(xì),有需要的朋友可以參考一下為什么去處理html文件 我們所有的方法都打包到了dist的文件夾下面,而我們的html是在自己定義的文件夾下面,如果自己手動再去一個一個src引入這些dist文件夾下的js,那么也有些太不靠譜了...

本篇文章給大家分享的是關(guān)于webpack對html文件的處理 ,步驟都很詳細(xì),有需要的朋友可以參考一下

  • 為什么去處理html文件
    我們所有的方法都打包到了dist的文件夾下面,而我們的html是在自己定義的文件夾下面,如果自己手動再去一個一個src引入這些dist文件夾下的js,那么也有些太不靠譜了

所以解決辦法是:

使用webpack插件:HtmlWebpackPlugin

  • 第一步:下載

npm install --save-dev extract-text-webpack-plugin

第二步:webpack.config.js配置

其中HtmlWebpackPlugin的配置項有:

Name類型Description
title{String}用于生成的HTML文檔的標(biāo)題
filename{String}要生成HTML的文件?梢灾付夸
template{String}依據(jù)的模板文件
inject{Boolean String}將js資源注入到頁面哪個部位,值有:true \ ‘head’ \ ‘body’ \ false,當(dāng)傳遞true或’body’所有JavaScript資源將被放置在正文元素的底部!痟ead’將腳本放置在head元素中
favicon{String}將給定的圖標(biāo)路徑添加到輸出HTML
hash{Boolean}如果true將webpack所有包含的腳本和CSS文件附加一個獨特的編譯哈希。這對緩存清除非常有用
chunks{?}放入你需要引入的資源模塊
excludeChunks{?}不放入你某些資源模塊

預(yù)期目標(biāo): 我的項目是一個多入口文件的項目,希望每一個入口頁面引入對應(yīng)的js模塊和css
比如login頁面引入login的js和css、index引入對應(yīng)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模板進行處理,生成對應(yīng)的html,引入需要的資源模塊
    new HtmlWebpackPlugin({
      template:'./src/view/index.html',//模板文件
      filename:'view/login/index.html',//目標(biāo)文件
      chunks:['commom','login'],//對應(yīng)加載的資源
      inject:true,//資源加入到底部
      hash:true//加入版本號
    })
  ]
}
module.exports= configs

然后打包結(jié)果如下
這里寫圖片描述

其中生成的目標(biāo)文件:
這里寫圖片描述

  • 為什么去處理html文件
    我們所有的方法都打包到了dist的文件夾下面,而我們的html是在自己定義的文件夾下面,如果自己手動再去一個一個src引入這些dist文件夾下的js,那么也有些太不靠譜了

所以解決辦法是:

使用webpack插件:HtmlWebpackPlugin

  • 第一步:下載

npm install --save-dev extract-text-webpack-plugin

第二步:webpack.config.js配置

其中HtmlWebpackPlugin的配置項有:

Name類型Description
title{String}用于生成的HTML文檔的標(biāo)題
filename{String}要生成HTML的文件?梢灾付夸
template{String}依據(jù)的模板文件
inject{Boolean String}將js資源注入到頁面哪個部位,值有:true \ ‘head’ \ ‘body’ \ false,當(dāng)傳遞true或’body’所有JavaScript資源將被放置在正文元素的底部。’head’將腳本放置在head元素中
favicon{String}將給定的圖標(biāo)路徑添加到輸出HTML
hash{Boolean}如果true將webpack所有包含的腳本和CSS文件附加一個獨特的編譯哈希。這對緩存清除非常有用
chunks{?}放入你需要引入的資源模塊
excludeChunks{?}不放入你某些資源模塊

預(yù)期目標(biāo): 我的項目是一個多入口文件的項目,希望每一個入口頁面引入對應(yīng)的js模塊和css
比如login頁面引入login的js和css、index引入對應(yīng)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模板進行處理,生成對應(yīng)的html,引入需要的資源模塊
    new HtmlWebpackPlugin({
      template:'./src/view/index.html',//模板文件
      filename:'view/login/index.html',//目標(biāo)文件
      chunks:['commom','login'],//對應(yīng)加載的資源
      inject:true,//資源加入到底部
      hash:true//加入版本號
    })
  ]
}
module.exports= configs

然后打包結(jié)果如下
這里寫圖片描述

其中生成的目標(biāo)文件:
這里寫圖片描述

相關(guān)推薦:

在webpack中使用ECharts詳解

Node.js、jade生成靜態(tài)html文件實例

webpack的插件詳解

以上就是webpack對html文件的處理的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護的網(wǎng)站。