webpack(9)plugin插件功能的使用

plugin

插件是 webpack 的支柱功能。webpack 自身也是构建于你在 webpack 配置中用到的相同的插件系统之上!
插件目的在于解决 loader 没法实现的其余事。
 css

经常使用的插件

因为插件能够携带参数/选项,你必须在 webpack 配置中,向 plugins 属性传入一个 new 实例,接下来咱们介绍几个经常使用的插件
 html

BannerPlugin

将横幅添加到每一个生成的块的顶部。通常用于添加版权声明vue

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文件的最上方会出现以下的一行注释webpack

/*! 最终版权归jkc全部 */

 

HtmlWebpackPlugin

目前咱们的index.html文件是存放在项目的根目录,可是咱们真实发布项目的时候是发布的dist文件夹下的内容,可是dist文件夹下若是没有index.html文件,那么打包的js文件也就没有意义了,因此咱们须要将index.html打包到dist文件夹下,这个时候咱们就可使用插件HtmlWebpackPluginweb

HtmlWebpackPlugin会自动生成一个index.html文件(能够指定模板生成),而后将打包的js文件自动经过script标签插入到body中。
使用插件前咱们须要安装插件,命令以下:npm

npm install --save-dev html-webpack-plugin

安装完成之后,咱们须要在webpack中引用它,并对其进行配置json

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文件babel

相关文章
相关标签/搜索