其他细节配置

文章目录

    • context
    • output
      • library
      • libraryTarget
    • target
    • module.noParse
    • resolve
      • modules
      • extensions
      • alias
    • externals
    • stats

context

context: path.resolve(__dirname, "app")

该配置会影响入口和loaders的解析,入口和loaders的相对路径会以context的配置作为基准路径,这样,你的配置会独立于CWD(current working directory 当前执行路径)

output

library

library: "abc"

这样一来,打包后的结果中,会将自执行函数的执行结果暴露给abc

libraryTarget

libraryTarget: "var"

该配置可以更加精细的控制如何暴露入口包的导出结果

其他可用的值有:

  • var:默认值,暴露给一个普通变量
  • window:暴露给window对象的一个属性
  • this:暴露给this的一个属性
  • global:暴露给global的一个属性
  • commonjs:暴露给exports的一个属性
  • 其他:https://www.webpackjs.com/configuration/output/#output-librarytarget

target

target:"web" //默认值

设置打包结果最终要运行的环境,常用值有

  • web: 打包后的代码运行在web环境中
  • node:打包后的代码运行在node环境中
  • 其他:https://www.webpackjs.com/configuration/target/

module.noParse

noParse: /jquery/

不解析正则表达式匹配的模块,通常用它来忽略那些大型的单模块库,以提高构建性能

resolve

resolve的相关配置主要用于控制模块解析过程

modules

modules: ["node_modules"]  //默认值

当解析模块时,如果遇到导入语句,require("test"),webpack会从下面的位置寻找依赖的模块

  1. 当前目录下的node_modules目录
  2. 上级目录下的node_modules目录

extensions

extensions: [".js", ".json"]  //默认值

当解析模块时,遇到无具体后缀的导入语句,例如require("test"),会依次测试它的后缀名

  • test.js
  • test.json

alias

alias: {"@": path.resolve(__dirname, 'src'),"_": __dirname
}

有了alias(别名)后,导入语句中可以加入配置的键名,例如require("@/abc.js"),webpack会将其看作是require(src的绝对路径+"/abc.js")

在大型系统中,源码结构往往比较深和复杂,别名配置可以让我们更加方便的导入依赖

externals

externals: {jquery: "$",lodash: "_"
}

从最终的bundle中排除掉配置的配置的源码,例如,入口模块是

//index.js
require("jquery")
require("lodash")

生成的bundle是:

(function(){...
})({"./src/index.js": function(module, exports, __webpack_require__){__webpack_require__("jquery")__webpack_require__("lodash")},"jquery": function(module, exports){//jquery的大量源码},"lodash": function(module, exports){//lodash的大量源码},
})

但有了上面的配置后,则变成了

(function(){...
})({"./src/index.js": function(module, exports, __webpack_require__){__webpack_require__("jquery")__webpack_require__("lodash")},"jquery": function(module, exports){module.exports = $;},"lodash": function(module, exports){module.exports = _;},
})

这比较适用于一些第三方库来自于外部CDN的情况,这样一来,即可以在页面中使用CDN,又让bundle的体积变得更小,还不影响源码的编写

stats

stats控制的是构建过程中控制台的输出内容

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

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

相关文章

mybatix常见查询

使用MyBatis进行复杂SQL查询和操作是一种常见的需求,这通常涉及到动态SQL的使用。在MyBatis中,你可以使用XML映射文件或注解来构建这些复杂的SQL语句。以下是一些示例,覆盖你所提及的动态查询分页、分组、多表联查等情况。 动态查询分页 在M…

C++之STL-list+模拟实现

目录 一、list的介绍和基本使用的方法 1.1 list的介绍 1.2 list的基本使用方法 1.2.1 构造方法 1.2.2 迭代器 1.2.3 容量相关的接口 1.2.4 增删查改的相关接口 1.3 关于list迭代器失效的问题 二、模拟实现list 2.1 节点类 2.2 迭代器类 2.3 主类list类 2.3.1 成员变…

C++——数据类型笔记

在C编程中,了解各类数据类型也是至关重要的。下面我会总结一下C中的数据类型,包括基本类型,符合类型和自定义类型。方便自己整理和理解。 1,基本类型 C中的基本类型是构建其他数据类型的基础,常见的基础类…

深圳消费扩容提质行动初见成效:多领域消费增长,商业环境持续优化

深圳市政府新闻办于近日召开发布会,深圳市商务局局长张非梦介绍了深圳市实施消费扩容提质行动的相关情况。根据发布会的内容,深圳市在今年一季度的消费市场展现出新气象和新活力,社消零总额达到2463.8亿元,其中新能源汽车、文化办…

多线程同步

1.多线程并发 1).多线程并发引例 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <assert.h> #include <pthread.h>int wg0; void *fun(void *arg) {for(int i0;i<1000;i){wg;printf("wg%d\n",wg);} } in…

tp6.0 rabbitmq死信队列

rabbitMq交换机&#xff0c;队列情况&#xff0c;先手动创建 1. 创建普通交换机exchange&#xff0c;普通队列order_queue_expire&#xff0c;队列设置属性&#xff1a; 消息过期时间&#xff1a;60000毫秒&#xff0c;过期绑定dead_exchange交换机&#xff0c;routing_key:de…

适配器模式(不同类型的 MQ 消息 首次下单消息)

目录 定义 适配不同类型的 MQ 消息 注册开户MQ 内部订单MQ 第三⽅订单MQ 查询⽤户内部下单数量接⼝ 查询⽤户第三⽅下单⾸单接⼝ MQ消息体适配类 代码实现 测试验证 接⼝使⽤适配 代码实现 分别实现两个不同的接⼝ 内部商品接⼝ 第三⽅商品接⼝ 测试验证 定义 …

使用递归方式实现多级菜单树 Java实现

在Java中&#xff0c;使用递归来实现菜单树通常涉及到遍历原始菜单列表&#xff0c;并为每个菜单项找到其对应的子菜单项。这个过程可以通过创建一个方法来完成&#xff0c;该方法会检查每个菜单项的parentId&#xff0c;并将其作为子菜单项添加到具有相应id的父菜单项的childr…

web前端学习笔记2

2. 网页穿上美丽外衣 2.0 代码地址 https://gitee.com/qiangge95243611/java118/tree/master/web/day02 2.1 什么是CSS CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文…

docker学习笔记7:centos docker安装mysql

在 CentOS 系统上使用 Docker 安装 MySQL 8 的过程相对简单。以下是一步步的指导: 1. 确保 Docker 已经安装 首先,你需要确保你的 CentOS 系统上已经安装了 Docker。可以通过以下命令检查 Docker 是否已经安装并且运行: sudo systemctl status docker如果 Docker 没有安装…

文件系统学习

软连接&#xff1a;可以跨不同的磁盘块&#xff0c;创建出不同的inode节点 应连接&#xff1a;相同的inode节点&#xff0c;不同的文件名字记录在父亲节点目录中 分区(fdisk)&#xff0c;格式化(mkfs)&#xff0c;挂载(mount)&#xff0c;大于2T分区&#xff08;parted&#…

FSNotes for Mac v6.7.1中文激活版:强大的笔记管理工具

FSNotes for Mac是一款功能强大的文本处理与笔记管理工具&#xff0c;为Mac用户提供了一个直观、高效的笔记记录和整理平台。 FSNotes for Mac v6.7.1中文激活版下载 FSNotes支持Markdown语法&#xff0c;使用户能够轻松设置笔记格式并添加链接、图像等元素&#xff0c;实现笔记…

前端调用WebSocket协议接口获取数据

目录 封装调用ws协议接口工具函数 页面调用 封装调用ws协议接口工具函数 params&#xff1a;请求参数cb&#xff1a;服务器请求成功返回数据的回调函数 function createWs(params, cb) {const ws new WebSocket("ws://124.222.224.186:8800");let timer null;// …

基于H.264的RTP打包中的组合封包以及分片封包结构图简介及抓包分析;FU-A FU-B STAP-A STAP-B简介;

H.264视频流的RTP封装类型分析&#xff1a; 前言&#xff1a; 1.RTP打包原则&#xff1a; RTP的包长度必须要小于MTU(最大传输单元)&#xff0c;IP协议中MTU的最大长度为1500字节。除去IP报头&#xff08;20字节&#xff09;、UDP报头&#xff08;8字节&#xff09;、RTP头&a…

C#编程模式之装饰模式

创作背景&#xff1a;朋友们&#xff0c;我们继续C#编程模式的学习&#xff0c;本文我们将一起探讨装饰模式。装饰模式也是一种结构型设计模式&#xff0c;它允许你通过在运行时向对象添加额外的功能&#xff0c;从而动态的修改对象的行为。装饰模式本质上还是继承的一种替换方…

机器学习-什么是 k-means?

1、什么是 k-means&#xff1f; k-means是一种无监督的分类学习算法。它的基本原理是以距离作为相似度的评价指标&#xff0c;用样本点到类别中心的误差平方和作为聚类好坏的评价指标&#xff0c;通过迭代的方法使总体分类的误差评分和函数达到最小的聚类方法。 2、 k-means聚…

设计模式 基本认识

文章目录 设计模式的作用设计模式三原则设计模式与类图设计模式的分类 设计模式的作用 设计模式是在软件设计过程中针对常见问题的解决方案的一种通用、可重用的解决方案。设计模式提供了一种经过验证的方法&#xff0c;可以帮助开发人员解决特定类型的问题&#xff0c;并在软…

【论文阅读】IPT:Pre-TrainedImageProcessingTransformer

Pre-TrainedImageProcessingTransformer 论文地址摘要1. 简介2.相关作品2.1。图像处理2.2。 Transformer 3. 图像处理3.1. IPT 架构3.2 在 ImageNet 上进行预训练 4. 实验4.1. 超分辨率4.2. Denoising 5. 结论与讨论 论文地址 1、论文地址 2、源码 摘要 随着现代硬件的计算能…

1394 笔记

RN节点工作模块&#xff0c;当接收到STOF包后开始计时&#xff0c;当达到节点的发送、接收、数据泵偏移时向应用层发送相应使能。并根据STOF判断CC的错误状态&#xff0c;只有以下条件全部满足时进入正常工作模式&#xff1a; 条件1&#xff0c;STOF消息的帧周期正确&#xff…

mybatis工程需要的pom.xml,以及@Data 、@BeforeEach、@AfterEach 的使用,简化mybatis

对 “mybatis - XxxMapper.java接口中方法的参数 和 返回值类型&#xff0c;怎样在 XxxMapper.xml 中配置的问题” 这篇文章做一下优化 这个pom.xml文件&#xff0c;就是上面说的这篇文章的父工程的pom.xml&#xff0c;即&#xff1a;下面这个pom.xml 是可以拿来就用的 <?…