webpack對html文件的處理
發(fā)表時間:2023-09-12 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]本篇文章給大家分享的是關(guān)于webpack對html文件的處理 ,步驟都很詳細(xì),有需要的朋友可以參考一下為什么去處理html文件 我們所有的方法都打包到了dist的文件夾下面,而我們的html是在自己定義的文件夾下面,如果自己手動再去一個一個src引入這些dist文件夾下的js,那么也有些太不靠譜了...
本篇文章給大家分享的是關(guān)于webpack對html文件的處理 ,步驟都很詳細(xì),有需要的朋友可以參考一下
所以解決辦法是:
使用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)文件:
所以解決辦法是:
使用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)站。