webpack(9)plugin插件功能的使用「建议收藏」

webpack(9)plugin插件功能的使用「建议收藏」plugin插件是webpack的支柱功能。webpack自身也是构建于你在webpack配置中用到的相同的插件系统之上!插件目的在于解决loader无法实现的其他事。常用的插件


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165382.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • vmware虚拟机版本不兼容_vm虚拟机与device不兼容怎么处理

    vmware虚拟机版本不兼容_vm虚拟机与device不兼容怎么处理引言:现在的windows操作系统对旧版本的软件兼容性非常差,很多老软件无法在win10下运行,因此我们需要建立虚拟机来运行老版软件。可是我们通过虚拟机安装XP系统时,有时候会出现546错误。经过本人网上搜索,发现这种问题还不在少数。正文:网上有一些大神啊,就开始支招了:“一定是你的安装包不对,换一个安装程序就可以了”、“VM重启几次就好了”。但是。。。。。这种解决方案通常是解决不了问题。瞎支招的…

    2022年8月16日
  • python进制转换代码_十进制转二进制编程

    python进制转换代码_十进制转二进制编程这篇文章主要介绍了Python实现的十进制小数与二进制小数相互转换功能,结合具体实例形式详细分析了二进制与十进制相互转换的原理及Python相关实现技巧,需要的朋友可以参考下本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:十进制小数⇒二进制小数乘2取整对十进制小数乘2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用2乘小数部分(之…

    2022年9月24日
  • mysql1396错误_MySQL 1045

    mysql1396错误_MySQL 1045提示错误:ERROR1396(HY000):OperationRENAMEUSERfailedfor’root’@’%’为了避免mysql中的安全隐患,将默认的root用户重命名。使用 renameuser 命令修改root用户名失败,改用updatemysql用户下的user表后修改成功。   …

    2022年8月12日
  • 使用vagrant一键部署本地php开发环境(一)[通俗易懂]

    使用vagrant一键部署本地php开发环境(一)

    2022年2月8日
  • mysql慢查询日志_sql慢查询日志

    mysql慢查询日志_sql慢查询日志1、显示慢日志是否开启showvariableslike‘%slow_query_log%’2、查询超过多少秒才记录showvariableslike‘%long_query_time%’3、配置分全局配置和配置文件的配置全局配置1)将slow_query_log全局变量设置为“ON”状态setglobalslow_query_log=‘ON’;2)查询超过1秒就记录setgloballong_query_time=13)设置慢查询日志存放的位置setg

    2022年10月11日
  • dart jsonDecode与jsonEncode[通俗易懂]

    dart jsonDecode与jsonEncode[通俗易懂]jsDecode顾名思义是解析json,解析json到模型中,例如将字符串jsonpt解析到实体类payloadModel中:finalpayloadModel=PayLoadModel.fromJson(jsonDecode(pt)asMap<String,dynamic>);jsonEncode是把数据转为json

    2022年7月17日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号