其他细节配置

文章目录

    • 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.mfbz.cn/a/585080.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

刷题训练之位运算

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握位运算算法。 > 毒鸡汤:学习,学习,再学习 ! 学,然后知不足。 > 专栏选自:刷题…

数据库分库分表

数据库分库分表 分库分表到底是什么 分库分表其实是分库,分表,分库分表的总称 分库 将数据按照一定规则存储到不同的数据库中,每个数据库存储一部分数据 分库主要解决的是并发量过大的问题,并发量一旦上升,那么数据库就可能成为系统的瓶颈&#xff…

综合性练习(后端代码练习2)——用户登录

目录 一、准备工作 二、约定前后端交互接口 1、需求分析 2、接口定义 1、输入账户密码界面 2、当前登录的用户界面 三、实现服务端代码 四、调整前端页面代码 1、login.html代码: 页面跳转的三种方式: 2、index.html代码: 五、运…

[华为OD] C卷 服务器cpu交换 现有两组服务器QA和B,每组有多个算力不同的CPU 100

题目: 现有两组服务器QA和B,每组有多个算力不同的CPU,其中A[i]是A组第i个CPU的运算能 力,B[i]是B组第i个CPU的运算能力。一组服务器的总算力是各CPU的算力之和。 为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换。 求两…

计算机网络----第十三天

DNS协议和文件传输协议 DNS: 含义:用于域名和IP地址的互相解析 DNS域名: 背景:通过IP地址访问目标主机,不便于记忆 域名的树形层次化结构: ①根域 ②顶级域:主机所处的国家/区域&#xf…

个人学习资源整理

文章目录 视频相关stl源码讲解相关 网站相关CPP网站 视频相关 stl源码讲解相关 跳转 网站相关 CPP网站 https://cplusplus.com/ https://gcc.gnu.org/

PostgreSQL的扩展(extensions)-常用的扩展之pg_repack

PostgreSQL的扩展(extensions)-常用的扩展之pg_repack pg_repack 是一款非常有用的 PostgreSQL 扩展工具,它能够重新打包(repack)表和索引以回收空间并减少碎片,而且在这个过程中不会锁定表,允…

软件测试常问的超高频面试题目,2022最强版,附答案

1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己&…

基于Vue3的Axios异步请求

基于Vue3的Axios异步请求 1. Axios安装与应用2. Axios网络请求封装3. axios网络请求跨域前端解决方案server.proxy 1. Axios安装与应用 Axios是一个基于promise的网络请求库,Axios.js.中文文档:https://axios.js.cn/ 安装:npm install --sa…

Apollo Dreamview+之Studio插件安装

步骤一:登录 Apollo Studio 工作台 登录 Apollo Studio 工作台。 步骤二:获取插件安装链接 在账户信息中,单击 我的服务 。 2. 选择 仿真 页签。 3. 在 插件安装 中单击 生成 ,选择 Apollo 最新版本,并单击 确定 。…

计算机视觉大项目(1)-水果分级系统

项目来源:河北大学计算机视觉课程-杨老师. 一共有四个标题,本篇博客只完成前两问。 目录 实验目的: 实验内容: 实验步骤: 1.水果图像的分割 >掩膜图像Mask 是什么? >改进:去除反光部分的影响 2&#xf…

ES6之rest参数、扩展运算符

文章目录 前言一、rest参数二、扩展运算符 1.将数组转化为逗号分隔的参数序列2.应用总结 前言 rest参数与arguments变量相似。ES6引入rest参数代替arguments,获取函数实参。扩展运算符能将数组转化为参数序列。 一、rest参数 function namelist1() {console.log(ar…

【无标题】场外个股期权多少钱才能做?个人能做吗?

场外个股期权的交易门槛相对较高,主要面向符合特定条件的机构投资者。一般来说,法人或合伙企业等组织参与的,需要满足最近1年末净资产不低于5000万元人民币、金融资产不低于2000万元人民币的条件,并具备3年以上证券、基金、期货、…

【postgresql】实时查询表字段相关数据

需求:数据库设计时候时不时变动,想根据实际编号进行查询表字段相关信息 库表 脚本 原始 优化后 查询 文档

[C++][算法基础]最大不相交区间数量(贪心 + 区间问题2)

给定 𝑁 个闭区间 [𝑎𝑖,𝑏𝑖],请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。 输出可选取区间的最大数量。 输入格式 第一行包含整数 &#x1d4…

Servlet(三个核心API介绍以及错误排查)【二】

文章目录 一、三个核心API1.1 HttpServlet【1】地位【2】方法 1.2 HttpServletRequest【1】地位【2】方法【3】关于构造请求 1.3 HttpServletResponse【1】地位【2】方法 四、涉及状态码的错误排查(404……)五、关于自定义数据 ---- body或query String …

【AI写作】未来科技趋势:揭秘DreamFusion的革新力量

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

分享一个网站实现永久免费HTTPS访问的方法

免费SSL证书作为一种基础的网络安全工具,以其零成本的优势吸引了不少网站管理员的青睐。要实现免费HTTPS访问,您可以按照以下步骤操作: 一、 选择免费SSL证书提供商 选择一个提供免费SSL证书的服务商。如JoySSL,他们是国内为数不…

Ubuntu C++ man手册安装及使用

Ubuntu下C++ man手册安装 C++在线文档: http://www.cplusplus.com/reference/ 第一种办法:使用cppman $ sudo apt install cppman 使用方法 第二种办法: 打开网页:GCC mirror sites- GNU Project 点击下图中的突显行链接: Russia, Novosibirsk:

可平滑替代FTP的FTP替代解决方案,具有哪些强大功能?

FTP是一种广泛使用的文件传输协议,主要用于在网络上的计算机之间传输文件。具有以下特点: 1.简单易用:FTP协议相对简单,易于设置和使用,许多操作系统和应用程序都内置了对FTP的支持。 2.广泛的客户端支持&#xff1a…
最新文章