快速上手Webpack打包指南:用简单的步骤掌握Webpack的使用技巧

目录

  • 概念:
    • 1. webpack 打包简介
      • 1.0 多个 JS 文件打包:
      • 1.1 webpack 数组形式
      • 1.2 webpack 对象形式
  • 总结

Webpack的打包过程可以总结为以下几个步骤:

  • 1.入口点配置:在Webpack的配置文件中,我们需要指定一个或多个入口点(entry points),这些入口点是我们应用程序的起点,Webpack会从这些入口点开始分析和构建依赖关系。
  • 2.模块解析:Webpack会根据入口点的依赖关系图,递归地解析所有的模块。在解析过程中,Webpack会根据配置文件中的规则,识别并处理不同类型的模块,例如JavaScript、CSS、图片等。
  • 3.加载器处理:对于非JavaScript类型的模块,Webpack会使用加载器(loader)进行处理。加载器可以将这些模块转换成JavaScript代码,或者将其转换成其他类型的静态资源文件。加载器可以链式调用,以便进行多个转换操作。
  • 4.依赖图构建:在模块解析和加载器处理完成后,Webpack会根据模块之间的依赖关系,构建一个依赖图(dependency graph)。这个依赖图描述了模块之间的引用关系,以及它们的依赖关系。
  • 5打包输出:最后,Webpack会根据依赖图生成一个或多个打包输出文件。这些输出文件可以是JavaScript代码、CSS样式表、图片等。Webpack还可以通过插件(plugins)进行额外的处理,例如代码压缩、文件合并等。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f44ace2601ad412c8a76700b69bc0895.png#pic_center)
  • 概念:

    webpack 是 JavaScript 应用程序的模块打包器,可以把开发中的所有资源(图片、js文件、css文 件等)都看成模块,通过loader(加载器)和 plugins (插件)对资源进行处理,打包成符合生产环境 部署的前端资源。所有的资源都是通过 JavaScript 渲染出来的。 如果一个页面大部分是script标签构成,80%以上是 webpack 打包。

    地址:http://cls.cn/telegraph
    在这里插入图片描述

    1. webpack 打包简介

    在这里插入图片描述
    在这里插入图片描述

    1.0 多个 JS 文件打包:

    如果模块比较多,就会将模块打包成JS文件, 然后定义一个全局变量 window[“webpackJsonp”] =[ ] ,它的作用是存储需要动态导入的模块,然后重写 window[“webpackJsonp”] 数组的 push( ) 方法为webpackJsonpCallback( ) ,也就是说window[“webpackJsonp”].push( ) 其实执行的是webpackJsonpCallback( ) window[“webpackJsonp”].push( ) 接收三个参数,第一个参数是模块的ID,第二个参数是 一个数组或者对象,里面定义大量的函数,第三个参数是要调用的函数(可选)
    在这里插入图片描述

    1.1 webpack 数组形式

  • 给需要处理业务的模块进行打包,通过下标取值。
  • !function(e) {
    var t = {};
    // 加载器 所有的模块都是从这个函数加载 执行
    function n(r) {
    if (t[r])
    return t[r].exports;
    var o = t[r] = {
    i: r,
    l: !1,
    exports: {}
    };
    1.2 webpack 对象形式
    给需要处理业务的模块进行打包,通过 key 取值。
    return e[r].call(o.exports, o, o.exports, n),
    o.l = !0,
    o.exports
    }
    n(0)
    }
    ([
    function () {
    console.log('123456')
    },
    function () {
    console.log('模块2')
    },
    ])
    

    1.2 webpack 对象形式

  • 给需要处理业务的模块进行打包,通过 key 取值
  • !function(e) {
    var t = {};
    // 所有的模块 都是从这个加载器 执行的 分发器
    function n(r) {
    if (t[r])
    return t[r].exports;
    var o = t[r] = {
    i: r,
    l: !1,
    exports: {}
    };
    return e[r].call(o.exports, o, o.exports, n),
    o.l = !0,
    o.exports
    }
    n('xialuo') // 对象 根据KEY 找模块
    }({
    0: function () {
    console.log('我是模块1 负责加密')
    },
    'xialuo': function () {
    console.log('我是模块2 负责解密')
    },
    2: function () {
    console.log('我是模块3 负责爬数据')
    }
    }
    );
    

    总结

    总的来说,Webpack的打包过程是一个将多个模块合并成一个或多个静态资源文件的过程。通过合理配置Webpack的入口点、加载器和插件,我们可以实现代码的模块化、资源的优化和性能的提升。

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

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

相关文章

数据接口有哪些?(数据接口有哪几种)

数据接口是指不同应用程序或系统之间交换数据的通信界面。在现代信息化社会中,数据接口扮演着极为重要的角色,它们使得不同平台之间能够相互连接和交流,从而实现数据共享和应用集成。 数据接口的种类繁多,常见的有以下几种&#…

SpringBoot开发小技巧使用(DEBUG、启动图标修改、Lombok、devtools、Spring Initializr)

目录 1. 通过DEBUG查看自动配置的组件2. springboot启动图标修改3. Lombok4. devtools5. 通过IDEA的Spring Initializr快速创建新项目 1. 通过DEBUG查看自动配置的组件 在resources/application.properties中添加如下,开启DEBUG功能: debugtrue然后启动…

SpringBoot 集成 EasyExcel 3.x 优雅实现 Excel 导入导出

介绍 EasyExcel 是一个基于 Java 的、快速、简洁、解决大文件内存溢出的 Excel 处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成 Excel 的读、写等功能。 EasyExcel文档地址: https://easyexcel.opensource.alibaba.com/ 快速开始 …

前后端分离windows本地nginx解决跨域

下载 http://nginx.org/en/download.html 命令 启动Nginx: nginx.exe start 快速停止或关闭Nginx: nginx.exe -s stop 正常停止或关闭Nginx: nginx.exe -s quit 配置文件修改重装载命令: nginx.exe -s reload 强制停用…

SQL调优教程

SQL调优教程 基础方法论 任何计算机应用系统性能问题最终都可以归结为 1.cpu消耗 2.内存使用 3.对磁盘,网络或其他I/O设备的输入/输出(I/O)操作 遇到性能问题时,要判断的第一点就是“在这三种资源中,是否有哪一种资源达到了有问题的程度”&…

Linux环境下Elasticsearch相关软件安装

Linux环境下Elasticsearch相关软件安装 本文将介绍在linux(Centos7)环境下安装Elasticsearch相关的软件。 1、安装Elasticsearch 1.1 Elasticsearch下载 首先去Elasticsearch官网下载相应版本的安装包,下载之后传输到linux服务器上。 官网地址:http…

Python采集某网站小视频内容, m3u8视频内容下载

目录标题 前言环境使用:模块使用:代码实现步骤代码展示尾语 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 环境使用: python 3.8 运行代码 pycharm 2021.2 辅助敲代码 模块使用: import requests >>> pip install requests 内置模块 你安装好python环境就…

Windows 微信更新内核(小程序框架)的指南

WMPF-PC 更新指引: 准备工作 1. 安装最新微信客户端( https://dldir1.qq.com/weixin/Windows/WeChatSetup.exe ) 2. 在微信在搜索栏输入:showcmdwnd (包括前面冒号) 中输入以下代码以开启 wmpf 新内核版本(已经是现网默认,可以…

安装redis,适配阿里云服务器,Liunx安装redis

下载redis以及编译安装 下载redis文件 wget http://download.redis.io/releases/redis-6.0.8.tar.gz #下载redis压缩文件 tar xzf redis-6.0.8.tar.gz #解压缩 cd redis-6.0.8 make 查看是否安装了gcc编译输入gcc --version如果没有…

对比CahtGPT Bard Claude2对中文的理解

对比CahtGPT Bard Claude2对中文的理解 今天简单测试了一下目前这三个很火的模型对中文的理解能力 简单问题 鲁迅和周树人的关系 Bard CahtGPT Claude 介绍一下平凡的世界这本书 Bard CahtGPT

5.CSS(二)

目录 一、Emmet语法 (一)快速生成HTML结构语法 (二)快速生成CSS样式语法 二、CSS的复合选择器 (一)后代选择器(重要) (二)子选择器(重要&…

什么是Java中的JVM(Java虚拟机)?

JVM(Java虚拟机)是Java平台的核心组件之一,是一个用于执行Java字节码的虚拟计算机。Java源代码经过编译器编译,生成字节码文件(.class文件),然后由JVM来解释和执行这些字节码。JVM负责将字节码翻…

kafka消息监听

1,spring配置kafka网址 2,listener Component public class OrderMsgListener {KafkaListener(topics "order",groupId "order-service")public void listen(ConsumerRecord record){System.out.println("收到消息&#xf…

Upload文件导入多条数据到输入框

需求场景:文本框内容支持批量导入(文件类型包括’.txt, .xls, .xlsx’)。使用AntD的Upload组件处理。 下面是Upload的配置(伪代码),重点为beforeUpload中的逻辑 // Antd 中用到的Upload组件 import { UploadOutlined } from ant…

静态路由小实验

文章目录 一、实验要求及拓扑图二、实验步骤三、思考题 一、实验要求及拓扑图 二、实验步骤 1、创建VLAN,将端口划入vlan 在交换机S3、S4上创建VLAN10、20 Switch(config)#vl 10 Switch(config-vlan)#vl 20 S3(config)#int f0/3 S3(config-if)#switchport access …

vue3 实现排序按钮

需求背景解决效果index.vue 需求背景 需要实现一个复用性&#xff0c;是提供表单顺倒排序的按钮 解决效果 index.vue <!--/*** author: liuk* date: 2023/7/25* describe: 排序按钮*/--> <template><div class"sort-fn"><span :class"[…

一次线上OOM问题的个人复盘

我们一个java服务上线后&#xff0c;偶尔会发生内存OOM(Out Of Memory)问题&#xff0c;但由于OOM导致服务不响应请求&#xff0c;健康检查多次不通过&#xff0c;最后部署平台kill了java进程&#xff0c;这导致定位这次OOM问题也变得困难起来。 最终&#xff0c;在多次review代…

electron的electron-packager打包运行和electron-builder生产安装包过程,学透 Electron 自定义 Dock 图标

electron的electron-packager打包运行和electron-builder生产安装包过程 开发electron客户端程序&#xff0c;打包是绕不开的问题。 macOS 应用构建&#xff0c;看似近在咫尺&#xff0c;实则坑坑致命。 场景&#xff1a;mac笔记本打包&#xff0c;以及生产出可交付的软件安装…

什么是事件循环Event Loop

一、含义 事件循环是指不断从任务队列中取出任务&#xff0c;并执行其对应的回调函数的过程。 二、事件循环流程 1.主线程执行同步任务&#xff0c;直到遇到异步任务时&#xff0c;将其回调函数他家到任务队列中&#xff0c;然后继续执行同步任务 2.当所有同步任务执行完之后&a…

如何利用plotly和geopandas根据美国邮政编码(Zip-Code)绘制美国地图

对于我自己来说&#xff0c;该需求源自于分析Movielens-1m数据集的用户数据&#xff1a; UserID::Gender::Age::Occupation::Zip-code 1::F::1::10::48067 2::M::56::16::70072 3::M::25::15::55117 4::M::45::7::02460 5::M::25::20::55455 6::F::50::9::55117我希望根据Zip-…