插件是 webpack
的支柱功能。webpack
自身也是构建于你在 webpack
配置中用到的相同的插件系统之上!
插件目的在于解决 loader
没法实现的其余事。
css
因为插件能够携带参数/选项,你必须在 webpack
配置中,向 plugins
属性传入一个 new
实例,接下来咱们介绍几个经常使用的插件
html
将横幅添加到每一个生成的块的顶部。通常用于添加版权声明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全部 */
目前咱们的index.html
文件是存放在项目的根目录,可是咱们真实发布项目的时候是发布的dist
文件夹下的内容,可是dist
文件夹下若是没有index.html
文件,那么打包的js文件也就没有意义了,因此咱们须要将index.html
打包到dist
文件夹下,这个时候咱们就可使用插件HtmlWebpackPlugin
web
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