webpack(9)plugin插件功能的使用
plugin
插件是 webpack 的支柱功能。webpack 自身也是構建於你在 webpack 配置中用到的相同的插件系統之上!
插件目的在於解決 loader 無法實現的其他事。
常用的插件
由於插件可以攜帶參數/選項,你必須在 webpack 配置中,向 plugins 屬性傳入一個 new 實例,接下來我們介紹幾個常用的插件
BannerPlugin
將橫幅添加到每個生成的塊的頂部。一般用於添加版權聲明
const webpack = require('webpack'); // 訪問內置的插件
const path = require('path');
module.exports = {
entry: './src/main.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: "dist/"
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
use: 'babel-loader',
},
],
},
plugins: [
new VueLoaderPlugin(),
new webpack.BannerPlugin("最終版權歸jkc所有")
],
};
最後我們進行打包,打包後的bundler.js文件的最上方會出現如下的一行注釋
/*! 最終版權歸jkc所有 */
HtmlWebpackPlugin
目前我們的index.html文件是存放在項目的根目錄,但是我們真實發布項目的時候是發布的dist文件夾下的內容,但是dist文件夾下如果沒有index.html文件,那麼打包的js文件也就沒有意義了,所以我們需要將index.html打包到dist文件夾下,這個時候我們就可以使用插件HtmlWebpackPlugin
HtmlWebpackPlugin會自動生成一個index.html文件(可以指定模板生成),然後將打包的js文件自動通過script標籤插入到body中。
使用插件前我們需要安裝插件,命令如下:
npm install --save-dev html-webpack-plugin
安裝完成以後,我們需要在webpack中引用它,並對其進行配置
const { VueLoaderPlugin } = require('vue-loader')
const path = require('path')
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin'); // 導入插件
module.exports = {
entry: './src/main.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
// publicPath: "dist/"
},
resolve: {
extensions: ['.json', '.js', '.vue', '.css'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
},
},
module: {
rules: [
{
test: /\.css$/i,
use: ["style-loader", "css-loader"],
},
{
test: /\.less$/,
use: [
'vue-style-loader',
'css-loader',
'less-loader'
]
},
{
test: /\.png/,
type: 'asset'
},
{
test: /\.vue$/,
loader: 'vue-loader'
}
],
},
plugins: [
// 請確保引入這個插件!
new VueLoaderPlugin(),
new webpack.BannerPlugin("最終版權歸jkc所有"),
new HtmlWebpackPlugin({ template: 'index.html' }), // 配置插件,並提供了自己的模板選項,這裡的index是與webpack.config.js同目錄下自定義的模板文件
]
}
最後進行打包,打包後dist目錄下就會生成一個index.html文件

