webpack:使用externals配置来排除打包后的某个依赖插件IgnorePlugin的使用

背景

假设,我们写了一个库并使用 webpack 打包输出 bundle,但是这个库依赖一个第三方包,比如依赖 lodash,这时候我们不想把这个库打包进 bundle 里因为体积会变大,而且我们的主项目里已经安装了这个 lodash,所以依赖主项目里的 lodash 就可以了。

那我们应该怎么样去除打包后的 lodash 呢?

使用externals

module.exports = {//...externals: {jquery: 'jQuery',lodash: 'lodash','./echarts': 'echarts'},
};

可以看到,这里的配置是 key: value 形式的。

  • key 代表的就是 require 中的值
  • value 代表使用哪个全局变量替代它。

例一

src/index.js

require('jquery')

webpack.config.js

module.exports = {//...externals: {jquery: 'jQuery'},
};

这里我们把 jquery 已经排除掉了,那么我们依赖主项目中的哪个变量作为我们排除掉的 jquery 呢?
这个里面的 key(jquery) 是指 require('jquery') 中的 jquery,而 value(jQuery)代表去主项目(也就是全局变量)里找 jQuery 这个变量来代替

例二

src/index.js

require('./echarts')

webpack.config.js

module.exports = {//...externals: {'./echarts': 'echarts'},
};

同理这个就不难理解了,当遇到导入 './echarts' 的时候,就去全局变量里找 echarts。

webpack插件IgnorePlugin

和 externals 功能有点像,但是可以更细力度的控制,比如不打包某个第三方包的某一个文件夹

plugins:[new Webpack.IgnorePlugin(/\.\/locale/,/moment/),//moment这个库中,如果引用了./locale/目录的内容,就忽略掉,不会打包进去
]

我们虽然按照上面的方法忽略了包含’./locale/'该字段路径的文件目录,但是也使得我们使用的时候不能显示中文语言了,如果需要我们可以手动引入

import moment from 'moment'//设置语言//手动引入所需要的语言包
import 'moment/locale/zh-cn';moment.locale('zh-cn');let r = moment().endOf('day').fromNow();
console.log(r);

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

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

相关文章

Docker(三)、Dockerfile探究

Dockerfile探究 一、镜像层概念1、通过执行命令显化docker的机制 二、Dockerfile基础命令1、FROM 基于基准镜像【即构建镜像的时候,依托原有镜像做拓展】2、LABEL & MAINTAINER -说明信息3、WORKDIR 设置工作目录4、ADD & COPY 复制文件5、ENV 设置环境常量…

P1496 火烧赤壁【区间排序合并】

P1496 火烧赤壁【区间排序合并】 题目背景 曹操平定北方以后,公元 208 年,率领大军南下,进攻刘表。他的人马还没有到荆州,刘表已经病死。他的儿子刘琮听到曹军声势浩大,吓破了胆,先派人求降了。 孙权任命周…

crypto:Alice与Bob

题目 根据题目描述,将98554799767分解成两个素数 得到两个素数101999和966233。根据题目提示把它们拼接起来进行md5的32位小写哈希

提升您的Mac文件拖拽体验——Dropzone 4 for mac

大家都知道,在Mac上进行文件拖拽是一件非常方便的事情。然而,随着我们在工作和生活中越来越多地使用电脑,我们对于这个简单操作的需求也越来越高。为了让您的文件拖拽体验更加高效和便捷,今天我们向大家介绍一款强大的工具——Dro…

[plugin:vite:css] [sass] Undefined mixin.

前言: vite vue3 TypeScript环境 scss报错: [plugin:vite:css] [sass] Undefined mixin. 解决方案: 在vite.config.ts文件添加配置 css: {preprocessorOptions: {// 导入scss预编译程序scss: {additionalData: use "/resources/_ha…

Confidential Compute Architecture - Arm构架的TEE新模式

1 简介 如今,云计算在分布式计算资源按需使用方面起着重要的作用。许多公司,如亚马逊、谷歌或微软都提供云服务,但使用这些服务需要信任服务提供商。这意味着一方面依赖提供商对抗攻击者,但另一方面也要信任提供商本身。恶意的提供商可能最终滥用其客户的敏感数据。使用可…

8章:scrapy框架

文章目录 scrapy框架如何学习框架?什么是scarpy?scrapy的使用步骤1.先转到想创建工程的目录下:cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 scrapy数据解析scrapy持久…

计算机视觉与深度学习-循环神经网络与注意力机制-RNN(Recurrent Neural Network)、LSTM-【北邮鲁鹏】

目录 举例应用槽填充(Slot Filling)解决思路方案使用前馈神经网络输入1-of-N encoding(One-hot)(独热编码) 输出 问题 循环神经网络(Recurrent Neural Network,RNN)定义如何工作学习目标深度Elm…

Hadoop分布式文件系统

目录 一、Hadoop 1、Hadoop发展简史 2、HDFS存储模型 3、HDFS架构设计 3.1、角色功能 3.2、元数据持久化 3.3、安全模式 3.4、HDFS中的SNN 3.5、Block的副本放置策略 4、HDFS写流程 5、HDFS读流程 一、Hadoop Hadoop之父Doug Cutting Hadoop的发音[hdu:p] &#x…

uniapp ssr发行后一直Hydration completed but contains mismatches Cannot find module

最开始我用前端网页托管的地址访问一直是 Hydration completed but contains mismatches 解决方案 要从云函数的地址访问项目。 先绑定域名,否则用uniapp自带地址访问一直是下载文件 设置路径 最后效果 uniapp ssr 云函数访问 MODULE_NOT_FOUND:Cannot fin…

【科研】--计算机领域顶会

计算机领域顶会 网络安全领域顶会 S&P IEEE Symposium on Security and Privacy (S&P) dblp链接:https://dblp.uni-trier.de/db/conf/sp/index.html 官网链接: http://www.ieee-security.org/TC/SP2021/program-papers.html CCS Conference…

2023 年 Bitget Wallet 测评

对Bitget Wallet钱包的看法 Bitget Wallet在安全性、产品实力和使用体验方面可与Metamask媲美,甚至有所超越,唯一稍显不足的是知名度稍逊一筹。在众多钱包中,Bitget Wallet是拥有最全面的钱包之一,尤其适合那些希望一步到位&…

面试理论篇一

关于面向对象 注:自用 1,什么是面向对象编程? 面向对象编程是⼀种程序设计思想,通过将问题抽象成对象,通过对象之间的交互和数据封装来实现程序逻辑。 2,Java中的类和对象有什么区别? 类是描述…

最小生成树 | 市政道路拓宽预算的优化 (Minimum Spanning Tree)

任务描述: 市政投资拓宽市区道路,本着执政为民,节省纳税人钱的目的,论证是否有必要对每一条路都施工拓宽? 这是一个连问带答的好问题。项目制学习可以上下半场,上半场头脑风暴节省投资的所有可行的思路&a…

web:[极客大挑战 2019]Upload

题目 页面显示为一个上传&#xff0c;猜测上传一句话木马文件 先查看源代码看一下有没有有用的信息&#xff0c;说明要先上传图片&#xff0c;先尝试上传含有一句话木马的图片 构造payload <?php eval($_POST[123]);?> 上传后页面显示为&#xff0c;不能包含<&…

《三国志》游戏的数据表设计与优化

在前两篇文章中,我们已经介绍了数据库的基础概念和《三国志》游戏的数据管理。这篇文章将专注于《三国志》游戏的数据表设计与优化。我们将探讨如何为游戏中的每个实体(例如,武将、城市、装备等)创建数据表,以及如何选择合适的主键和字段类型,最后还将讨论如何定义约束条…

nmap 扫描内网IP, 系统, 端口

nmap 扫描内网IP, 系统, 端口 扫描内网ip 对内网进行ARP扫描 .\nmap.exe -sn 192.168.110.0/24 # 全网段 .\nmap.exe -sn 192.168.110.100-200 # 100-200范围 扫描端口 .\nmap.exe -sT 192.168.110.130 # 三次握手连接 较慢, 但更有效 .\nmap.exe -sS 192.168.110.130 # 发…

k8s--架构基础--云控制器管理器

具体来说&#xff0c;云控制器管理器允许用户将集群与云服务提供商的 API 进行连接&#xff0c;以获取与云平台相关的信息和资源。通过这种连接&#xff0c;Kubernetes 可以利用云服务提供商的功能和特性&#xff0c;例如虚拟机、负载均衡器、对象存储等。与此同时&#xff0c;…

“益路同行”栏目专访第11期——柳州市雨花敬老服务中心陈勇梅

中国善网在本届&#xff08;第十届&#xff09;慈展会上特别推出了《益路同行》采访栏目&#xff0c;《益路同行》栏目旨在寻觅公益之路上同行者的故事&#xff0c;挖掘公益更深层次的内涵&#xff0c;探索新时代公益发展道路。希望公益企业、人物、故事被更多人看到&#xff0…

2.物联网射频识别,RFID通信原理,RFID读写器与标签无线交互方式、数据反馈方式,RFID调制与解调、编码方式,不同RFID标签与读写器

一。RFID无线识别的原理 1.RFID系统无线通信基本原理 如下图所示&#xff0c;左边是读写器&#xff08;刷卡器&#xff09;&#xff0c;右边是标签&#xff08;卡&#xff09;&#xff0c;中间通过无线通信方式。 标签&#xff1a;&#xff08;卡&#xff09; 读写器&#xff…