前端工程化之:webpack2-2(内置插件)

目录

一、内置插件

1.DefinePlugin 

2.BannerPlugin 

3.ProvidePlugin


一、内置插件

所有的 webpack 内置插件都作为 webpack 的静态属性存在的,使用下面的方式即可创建一个插件对象:

const webpack = require("webpack")new webpack.插件名(options)

1.DefinePlugin 

全局常量定义插件,使用该插件通常定义一些常量值,例如:

 webpack.config.js : 

// 引入webpack内置插件
const webpack = require("webpack");// plugins中配置
plugins: [new webpack.DefinePlugin({PI: `Math.PI`, // const PI = Math.PIVERSION: `"1.0.0"`, // VERSION = "1.0.0"DOMAIN: JSON.stringify("http://localhost:8080/html"), // DOMAIN = "duyi.com"}),
],

 src/index.js : 

console.log(PI);
console.log(VERSION);
console.log(DOMAIN);

 浏览器:

d60aa3d5dae8450592fa2817c27f6abe.png

这样一来,在源码中,我们可以直接使用插件中提供的常量,当 webpack 编译完成后,会自动替换为常量的值。

2.BannerPlugin 

它可以为每个 chunk 生成的文件头部添加一行注释,一般用于添加作者、公司、版权等信息。 

 webpack.config.js :  

new webpack.BannerPlugin({banner: `hash:[hash]chunkhash:[chunkhash]name:[name]author:zuozhecorporation:gongsi`
})

运行 npx webpack 打包命令后的 main.js 文件最上方会出现以下代码:

/*!* *       hash:07133a8cf05d494f4cba*       chunkhash:aeea2163831469d1baf2*       name:main*       author:zuozhe*       corporation:gongsi*       */

3.ProvidePlugin

自动加载模块,而不必到处 import require 。 

 webpack.config.js :  

new webpack.ProvidePlugin({$: 'jquery',_: 'lodash'
})

 src/index.js : 

console.log($("#item")); // <= 起作用
console.log(_.drop([1, 2, 3], 2)); // <= 起作用

浏览器:

3fde67818245434fa49c40c639fa27bc.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/458510.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web3智能合约:重新定义商业合作的未来

随着区块链技术的飞速发展&#xff0c;Web3时代正逐渐到来&#xff0c;而其中的智能合约成为推动商业合作变革的关键力量。本文将深入探讨Web3智能合约的概念、特点以及对商业合作未来的巨大影响。 什么是Web3智能合约&#xff1f; 智能合约是一种以代码形式编写、自动执行合同…

React+Echarts实现数据排名+自动滚动+Y轴自定义toolTip文字提示

1、效果 2、环境准备 1、react18 2、antd 4 3、代码实现 原理&#xff1a;自动滚动通过创建定时器动态更新echar的dataZoom属性startValue、endValue&#xff0c;自定义tooltip通过监听echar的鼠标移入移出事件&#xff0c;判断tooltTip元素的显隐以及位置。 1、导入所需组…

【考研数学】选汤家凤1800 还是 张宇1000❓关键看这一点

考研备考&#xff0c;如果没有准备好&#xff0c;真的不要随便开始&#xff0c;因为已经有人开始后悔了&#xff01; 特别是关于考研数学&#xff0c;很多人都不知道该如何刷题&#xff0c;如何选资料&#xff0c;下面我就分享一下我的经验&#xff1a; 关于考研做题&#xf…

RobotFramework报错都是因为什么

1、参数问题FAILKeyword common. Bpm Ui Query Delete Data expected 44 arguments,got 3. 这种报错的意思是&#xff0c;应该有4个参数&#xff0c;实际只展示了3个参数 找对应的解决方案一 可能是入参的时候数量不一致 解决方案二&#xff1a; 对应的参数中间有空格 …

机器学习 | 一文看懂SVM算法从原理到实现全解析

目录 初识SVM算法 SVM算法原理 SVM损失函数 SVM的核方法 数字识别器(实操) 初识SVM算法 支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种经典的监督学习算法&#xff0c;用于解决二分类和多分类问题。其核心思想是通过在特征空间中找到一…

Java小区物业管理系统

技术架构&#xff1a; springboot mybatis thymeleaf Mysql5.7 有需要该项目的小伙伴可以私信我你的Q。 功能描述&#xff1a; 控制台、数据库、楼栋管理、单元管理、房屋管理、车位管理、缴费类型、缴费管理、公告管理、维修管理、投诉管理、用户管理 效果图&#xff…

【Linux】环境基础开发工具的使用之gdb详解(三)

前言&#xff1a;上一篇文章中我们讲解了Linux下的gcc与g的使用&#xff0c;今天我们将进一步的学习gdb与makefile来帮我们更好的理解与使用基础开发工具。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:Linux的深度刨析 &#x1f448; …

【C生万物】C语言分支和循环语句

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

最好的方式来预测未来是去创造它。

在辅导企业的过程中&#xff0c;对于「建设性的冲突」持开放态度&#xff0c;这背后反映了一种深刻的系统思考和变革管理的理念。在许多传统工作环境中&#xff0c;「和谐」往往被高度重视&#xff0c;但这种表面的和谐有时会掩盖问题的真相&#xff0c;阻碍组织的深层次变革和…

顺序表、链表相关OJ题(2)

创作不易&#xff0c;友友们给个三连吧&#xff01;&#xff01; 一、旋转数组&#xff08;力扣&#xff09; 经典算法OJ题&#xff1a;旋转数组 思路1&#xff1a;每次挪动1位&#xff0c;右旋k次 时间复杂度&#xff1a;o(N^2) 右旋最好情况&#xff1a;k是n的倍数…

【力扣】快乐数,哈希集合+快慢指针+数学

快乐数原题地址 方法一&#xff1a;哈希集合 定义函数getNext(n)&#xff0c;返回n的所有位的平方和。一直执行ngetNext(n)&#xff0c;最终只有2种可能&#xff1a; n停留在1。无限循环且不为1。 证明&#xff1a;情况1是存在的&#xff0c;如力扣的示例一&#xff1a; 接…

P1808 单词分类

P1808 单词分类 题目描述 Oliver 为了学好英语决定苦背单词&#xff0c;但很快他发现要直接记住杂乱无章的单词非常困难&#xff0c;他决定对单词进行分类。 两个单词可以分为一类当且仅当组成这两个单词的各个字母的数量均相等。 例如 AABAC&#xff0c;它和 CBAAA 就可以…