plugins webpack_webpack plugin原理

plugins webpack_webpack plugin原理plugin插件是webpack的支柱功能。webpack自身也是构建于你在webpack配置中用到的相同的插件系统之上!插件目的在于解决loader无法实现的其他事。常用的插件

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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/166088.html原文链接:https://javaforall.net

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


相关推荐

  • CSS——06扩展:高级

    CSS——06扩展:高级人生苦短,要学就只学有用的【前端教学-CSS-高阶技巧】CSS样式初始CSS高级技巧目标理解能说出元素显示隐藏最常见的写法能说出精灵图产生的目的能说出去除图片底侧空白缝隙的方法应用能写出最常见的鼠标样式能使用精灵图技术,这个技术比较重要能用滑动门做导航栏案例,这个技术比较重要1.元素的显示与隐藏目的让一个元素在页面中消失或者显示出来场景类似网站广告,当我们点击关闭就不见了,但是我们重新刷新页面,会重新出现!1.1display显示(重点)…

    2022年5月29日
  • idea中查看接口的所有实现类_idea查看方法在哪里被调用

    idea中查看接口的所有实现类_idea查看方法在哪里被调用

    2022年8月15日
  • Java堆结构PriorityQueue完全解析

    Java堆结构PriorityQueue完全解析在堆排序这篇文章中千辛万苦的实现了堆的结构和排序,其实在Java1.5版本后就提供了一个具备了小根堆性质的数据结构也就是优先队列PriorityQueue。下面详细了解一下PriorityQueue到底是如何实现小顶堆的,然后利用PriorityQueue实现大顶堆。PriorityQueue的数据结构PriorityQueue的逻辑结构是一棵完全二叉树,存储结构其实是一个数组。逻辑结构层次遍历的

    2022年4月29日
  • 分享一键群发各大博客社区平台的工具

    分享一键群发各大博客社区平台的工具文章目录1.BlogHelper2.OpenWrite随着自媒体越来越流行,一篇文章或一个视频分别要在几个平台上发布…

    2022年7月4日
  • CSS中 RGB颜色查询对照表

    CSS中 RGB颜色查询对照表颜色代码表Ⅰ #000000 #2F0000 #600030 #460046 #28004D #272727 #4D0000 #820041 #5E005E #3A006F #3C3C3C #600000 #9F0050 #750075 #4B0091

    2022年5月16日
  • 什么是数据安全,为什么需要保证数据安全「建议收藏」

    什么是数据安全,为什么需要保证数据安全「建议收藏」WHAT何为数据安全?数据安全指的是用技术手段识别网络上的文件、数据库、帐户信息等各类数据集的相对重要性、敏感性、合规性等,并采取适当的安全控制措施对其实施保护等过程。与边界安全、文件安全、用户行为安全等其他安全问题相同,数据安全并非是唯一一种能提升信息系统安全性的技术手段,也不是一种能全面保障信息系统安全的技术手段。它就是一种能够合理评估及减少由数据存储所带来的安全风险的技术方式。为什么需…

    2022年5月11日

发表回复

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

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