webpack-plugin的使用

1、认识plugin

plugin是什么?插件的意思,通常用于对某个现有的架构进行扩展。

webpack中的插件,就是对webpack现有功能的各种扩展,比如打包优化,文件压缩等。

2、loader和plugin区别

loader主要用于转换某些类型的模块,它是一个转换器

plugin是插件,它是对webpack本身的扩展,是一个扩展器。

3、plugin的使用过程

通过npm安装需要使用的plugins(某些webpack已经内置的插件不需要安装)

在webpack.config.js中的plugins中配置插件。

接下来看看可以通过哪些插件对现有的webpack打包过程进行扩容,让webpack更好使用

添加版权的plugin,为打包的文件添加版权声明

插件名字:BannerPlugin,属于webpack自带的插件,配置webpack.config.js

const path = require("path")

const webpack = require('webpack'); // 访问内置的插件

module.exports = {

    ...

    plugins:[

      new webpack.BannerPlugin('最终版权归萌小七所有')

    ],

  }

重新打包程序,查看main.js文件头部,会看到如下信息

/*!

  *Vue.js v2.6.12

  * (c) 2014-2020 Evan You

  * Released under the MIT License.

*/

/*! 最终版权归萌小七所有 */

4、打包html的plugin

目前,index.html文件是存放在项目根目录下的。

在真实发布项目时,发布的是dist文件夹中的内容,但dist文件夹中如果没有index.html文件,那么打包的js等文件也就没有意义了。

所以我们需要将index.html文件打包到dist文件夹中,这个时候就可以使用HtmlWebpackPlugin插件

HtmlWebpackPlugin插件可以为我们做这些事情:

自动生成一个index.html文件(可以指定模板来生成)

将打包的js文件,自动通过script标签插入到body中

安装HtmlWebpackPlugin插件

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

使用插件,修改webpack.config.js文件中plugins部分的内容如下:

这里的template表示根据什么模板来生成index.html

另外我们需要删除之前在output中添加的publicPath属性

否则插入的script标签中的src可能会有问题

const path = require("path")

const webpack = require('webpack'); // 访问内置的插件

const htmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {

  // 入口:可以是字符串/数组/对象,这里我们入口只有一个,所以写一个字符串即可

  entry: "./src/main.js",

  // 出口:通常是一个对象,里面至少包含两个属性,path和filename

  output: {

    //注意:path通常是一个绝对路径

    path: path.resolve(__dirname, "dist"),

    filename: "main.js",

    // publicPath: "dist/",

  },

  plugins:[

    new webpack.BannerPlugin('最终版权归萌小七所有'),

    new htmlWebpackPlugin({

      template:'index.html'

    })

  ],

}

5、uglifyjsWebpackPlugin的使用

在项目发布之前,我们必然需要对js等文件进行压缩处理

我们就对打包的js文件进行压缩

使用一个第三方插件uglifyjs-webpack-plugin

npm install uglifyjs-webpack-plugin --save-dev

修改webpack.config.js文件,使用插件

const webpack = require('webpack'); // 访问内置的插件

const htmlWebpackPlugin = require('html-webpack-plugin');

const uglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {

  ...// 省略一些代码

  plugins:[

    new webpack.BannerPlugin('最终版权归萌小七所有'),

    new htmlWebpackPlugin({

      template:'index.html'

    }),

    new uglifyJsPlugin()

  ],

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • webpack介绍和使用 一、webpack介绍 1、由来 由于前端之前js、css、图片文件需要单独进行压缩和打...
    yichen_china阅读 664评论 0 0
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 11,400评论 0 21
  • webpack 是一个流行的前端项目构建工具(打包工具),可以解决当前 web 开发中所面临的困境。webpack...
    A_si阅读 719评论 0 0
  • # 什么是webpack?* 问题:为什么在 vue 中使用 npm run build 命令就可以把开发环境中的...
    徒步旅行_72c5阅读 288评论 0 0
  • 介绍 1.什么是插件(plugin)?plugin 用于扩展webpack的功能当然loader也是变相的扩展了w...
    砖工阅读 849评论 0 0

友情链接更多精彩内容