当前位置: 首页 > article >正文

关于前端打包

一、为什么需要打包或者说打包解决了什么问题1、模块化管理存在的问题过去用 script 标签手动管理依赖会出现“全局变量冲突”、“顺序错误”、“难以维护”的问题。解决的方法支持 ES Modules、CommonJS、AMD 等模块规范让代码可以 import/export实现清晰的依赖管理。2、性能优化存在的问题无数个小文件会产生数百个HTTP请求浏览器并发限制会导致加载缓慢。解决的方法将零散文件合并成少量bundle减少请求数。同时可以代码压缩、Tree Shaking(移除未引用的代码)、代码分割按需加载显著减少资源体积。3、开发体验存在的问题手写原生CSS缺乏变量/嵌套写JS要用新语法如ES6、 TypeScript,改完代码需要手动刷新浏览器调试。解决的方法提供开发服务器热更新、预处理器Sass/Less、编译器Babel/TypeScript、图片压缩等一站式编译能力让开发者专注于业务逻辑。二、打包具体做了什么前端里说的打包Bundle / Packaging就是把很多的分散文件JS、CSS、图片、字体合并、压缩、优化成少数几个文件让网页加载更快、能上线运行。主要功能包括1. 模块化处理功能说明将不同模块规范ESM、CommonJS、AMD的代码统一处理使其能在浏览器中运行技术实现将每个模块包裹在函数中通过运行时runtime管理模块加载和缓存面试价值这是打包工具的基础能力解决了浏览器原生不支持模块化的问题2. 依赖管理功能说明分析模块间的导入导出关系构建完整的依赖图技术实现从入口文件开始递归解析import/require语句记录所有依赖关键价值确保所有模块按正确顺序加载避免全局变量污染和依赖缺失3. 代码转换 (Transformation)功能说明将非JS资源如TypeScript、Vue、JSX、图片、CSS转换为浏览器可识别的格式技术实现通过 Loader 机制链式处理文件内容如 sass-loader → css-loader → style-loader典型场景TypeScript → JavaScriptSass/Less → CSS图片 → 图片URL或Base64JSX → React.createElement4. 代码优化 (Optimization)功能说明减少代码体积提升运行效率关键技术代码压缩去除空格、注释缩短变量名如 Terser、esbuildTree Shaking消除未引用的代码Dead Code Elimination作用域提升将多个模块合并到同一作用域减少函数包裹开销常量折叠在编译时计算常量表达式如 1 2 变成 35. 代码分割 (Code Splitting)功能说明将代码拆分成多个chunk实现按需加载或并行加载实现方式动态导入import(./module.js) 自动分割公共模块抽取将多入口共享的代码如lodash、React提取到单独文件路由级分割不同路由对应不同的chunk性能价值减少首屏加载体积利用浏览器缓存提高二次访问速度6. 资源处理功能说明管理静态资源图片、字体、音频等的加载和输出处理策略小资源内联小于阈值的图片转成Base64减少HTTP请求大资源单独输出生成带哈希的文件名便于缓存更新资源优化图片压缩、字体子集化等7. 开发体验增强功能说明提升开发效率和调试便利性关键特性热模块替换修改代码后只更新变更模块不刷新页面保持状态开发服务器提供HTTP服务、代理API、文件监听Source Map将打包代码映射回源码方便调试错误提示编译错误时提供友好的堆栈和位置信息三、常见的打包工具Webpack - 最流行的打包工具功能强大Vite - 现代化工具开发体验更好Rollup - 适合库开发Parcel - 零配置易于上手四、打包示范流程五、常见配置要素总结入口出口 路径别名 资源处理 语法转译 代码分割压缩 环境变量 静态复制 兼容适配1. 入口 出口配置入口文件项目从哪个文件开始打包main.js/index.js输出目录打包产物输出到哪默认dist输出文件名JS/CSS 加哈希后缀防止浏览器缓存2. 路径 基础路径公共基础路径base/publicPath部署在根目录、子目录、CDN 都靠它配置别名路径指向src简化导入路径不用写../../3. 资源处理配置CSS 处理Less/Sass/Stylus 编译、自动加浏览器前缀、CSS 抽离单独文件静态资源图片 / 字体 / 视频小于阈值转 base64大于阈值打包成独立文件4. 语法兼容 转译ES6 / TS 转译兼容低版本浏览器Vue/React 单文件编译解析.vue、.jsx浏览器兼容列表配置需要兼容哪些机型、浏览器5. 代码优化配置代码压缩压缩 JS、CSS、HTML删除空格注释Tree-Shaking剔除未使用的冗余代码代码分割路由懒加载、第三方包单独拆包vendor首屏加载更快Gzip 压缩打包生成 .gz 文件服务器开启后极大提速6. 环境变量配置区分开发环境 / 生产环境配置接口地址、开关、埋点、调试模式打包时自动屏蔽 console.log、调试代码7. 静态资源复制把public目录下静态文件图标、静态 html直接原样复制到打包目录不编译8. 打包排除 忽略打包忽略 node_modules、本地测试文件、日志文件按需排除大第三方库用 CDN 引入减小包体积9. 跨域 代理配置开发环境本地开发代理接口解决跨域打包生产环境自动失效不影响线上10. 打包进度 可视化打包进度条、体积分析查看哪个依赖包体积过大方便优化

相关文章:

关于前端打包

一、为什么需要打包&#xff0c;或者说打包解决了什么问题1、模块化管理&#xff1a;存在的问题&#xff1a;过去用 <script> 标签手动管理依赖&#xff0c;会出现“全局变量冲突”、“顺序错误”、“难以维护”的问题。解决的方法&#xff1a;支持 ES Modules、CommonJS…...

保姆级教程:在Ubuntu 20.04上从零搭建ROS Noetic + Realsense D435i开发环境(含清华源加速)

保姆级教程&#xff1a;Ubuntu 20.04上ROS Noetic与Realsense D435i开发环境全栈部署指南 在机器人视觉开发领域&#xff0c;环境配置往往是新手面临的第一个挑战。想象一下&#xff0c;当你满怀期待地拆开崭新的Realsense D435i深度相机&#xff0c;准备大展身手时&#xff0c…...

中国加密货币投资者必备:Ledger 硬件钱包选购指南

对于中国加密货币投资者而言&#xff0c;在复杂的网络环境与多变的监管政策下&#xff0c;“私钥主权离线化”已不再是进阶选项&#xff0c;而是保护资产的生存底线。 针对大中华区用户面临的 App Store 区域限制、网络同步卡顿及硬件供应链安全等痛点&#xff0c;本指南将为您…...

WHAT - GitLens supercharged 插件

文章目录一、核心能力1. 行级追踪&#xff08;Blame&#xff09;2. 历史回溯&#xff08;History / Timeline&#xff09;3. Commit 详情增强4. 分支与仓库可视化5. CodeLens&#xff08;代码上方增强信息&#xff09;6. 快捷操作二、解决了什么问题1. 代码“归因问题”2. 上下…...

车间设备实时监控难在哪?边缘计算网关才是答案

某家年产值过亿的机械加工厂。生产车间里六十八台设备。数控车床、加工中心、磨床、冲压机&#xff0c;品牌五花八门。老板花了四十万上了MES系统。结果呢。数据还是靠人抄。每两小时巡一次线&#xff0c;拿手写板记设备状态。设备编号、运行时间、报警代码&#xff0c;全部手填…...

NOKOV动捕系统坐标系偏移实战:5分钟搞定机器人定位校准(附计算工具推荐)

NOKOV动捕系统坐标系校准实战&#xff1a;从原理到工具链全解析 在机器人研发和动作捕捉应用领域&#xff0c;坐标系对齐问题就像两个说不同语言的人试图合作——看似简单&#xff0c;实则充满细节陷阱。上周在实验室调试机械臂时&#xff0c;我们遇到了一个典型场景&#xff1…...

越疆焊接机器人实测:免示教到底是不是噱头?8年集成商的选型避坑指南

最近这半年&#xff0c;我接到的关于焊接产线改造的咨询&#xff0c;比过去两年加起来都多。而且大家的痛点出奇的一致&#xff1a;“招不到靠谱的老焊工”、“焊工工资太高了”、“传统工业机器人不会用&#xff0c;换型太折腾”。前几天&#xff0c;有个长三角做冲压件和五金…...

PHP中HTML嵌入与布局问题解析

在PHP编程中&#xff0c;常常会遇到将动态生成的HTML插入到静态HTML结构中的情况。然而&#xff0c;有时候这些动态生成的HTML会影响到页面的布局和CSS样式。本文将详细讨论这种常见的编程问题&#xff0c;并提供解决方案。 问题描述 假设我们有一个PHP文件&#xff0c;它从数据…...

无需复杂配置使用Taotoken快速验证大模型创意想法

无需复杂配置使用Taotoken快速验证大模型创意想法 1. 分钟级接入体验 当新产品创意需要快速验证时&#xff0c;传统的大模型接入流程往往需要开发者花费大量时间在账号申请、API文档研究和服务配置上。Taotoken提供的标准化接入方式让这一过程缩短到分钟级别。开发者只需完成…...

巧用NumPy:处理不规则列索引的向量模计算

在数据处理和科学计算中,NumPy是一个不可或缺的工具。它的高效计算能力能够帮助我们快速处理大规模的数值数据。今天,我们要探讨一个有趣的问题:如何在NumPy数组中,根据一个不规则的列索引列表,计算每个行向量的模长。 问题描述 假设我们有一个NxM的数组my_arr,以及一个…...

我的大模型实践:思考模式、提示词与边界的权衡之道

在与大模型打交道的过程中&#xff0c;我逐渐意识到&#xff1a;没有放之四海皆准的“最佳实践”&#xff0c;只有基于模型规模、任务复杂度和容错成本的动态权衡。这篇文章将我近期关于“思考模式 vs 非思考模式”、“限制性提示词 vs 意图式提示词”、“提示词边界如何设计”…...

BFloat16指令集解析与机器学习优化实践

1. BFloat16指令集概述与核心价值BFloat16&#xff08;Brain Floating Point 16&#xff09;是专为机器学习设计的16位浮点格式&#xff0c;由Google Brain团队于2018年提出。与传统FP16相比&#xff0c;BFloat16保留了与FP32相同的8位指数位&#xff0c;仅将尾数位从23位缩减到…...

R语言做病害预测还停留在glm?2024最新R包farmML正式开源:支持多源传感器+气象+基因型数据联合建模

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;R语言在作物病害预测中的演进与范式变革 R语言已从早期的统计建模工具&#xff0c;逐步演变为融合遥感数据解析、时间序列异常检测与可解释机器学习的农业智能预测核心平台。其生态中 caret、tidymodel…...

如何快速实现Figma界面汉化:面向中文设计师的完整指南

如何快速实现Figma界面汉化&#xff1a;面向中文设计师的完整指南 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而烦恼吗&#xff1f;专业术语看不懂&#xff0…...

科技圈一夜巨震:马斯克薪酬绑定火星殖民,华为小艺接入DeepSeek V4 懂游宝打手用户突破5000万,游戏服务市场正经历结构性变革

科技圈一夜巨震&#xff1a;马斯克薪酬绑定火星殖民&#xff0c;华为小艺接入DeepSeek V4【合集次标题】腾讯混元离线翻译、游戏打手破5000万、国产华龙一号、OPPO Find X9s Pro评测01. 腾讯混元开源440MB离线翻译模型&#xff0c;支持33种语言面对多数翻译应用必须联网才能保证…...

当网盘下载变成一场耐心测试,我们找到了更聪明的办法

当网盘下载变成一场耐心测试&#xff0c;我们找到了更聪明的办法 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

TX3 Mini S905W电视盒运行Armbian终极指南:快速免费改造为Linux服务器

TX3 Mini S905W电视盒运行Armbian终极指南&#xff1a;快速免费改造为Linux服务器 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, …...

数据增强不平衡样本轴承故障诊断【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;查看文章底部二维码&#xff08;1&#xff09;决策融合的Trans-ResNet模型用于不平衡诊断&#x…...

为什么你的NVIDIA显卡显示色彩总是不对?3分钟解锁专业级色彩校准秘诀

为什么你的NVIDIA显卡显示色彩总是不对&#xff1f;3分钟解锁专业级色彩校准秘诀 【免费下载链接】novideo_srgb Calibrate monitors to sRGB or other color spaces on NVIDIA GPUs, based on EDID data or ICC profiles 项目地址: https://gitcode.com/gh_mirrors/no/novid…...

Kinematify:基于RGB图像的关节物体三维建模技术解析

1. 项目背景与核心价值在计算机视觉和三维建模领域&#xff0c;从二维图像重建三维物体一直是个经典难题。而针对高自由度关节物体&#xff08;如机械臂、人体骨骼、可变形玩具等&#xff09;的自动建模&#xff0c;更是难上加难。传统方法要么需要昂贵的专业设备&#xff08;如…...

【Laravel 12+ AI集成面试通关指南】:覆盖97%高频考点的32道真题解析与避坑清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Laravel 12 AI集成面试通关导览 Laravel 12 引入了原生异步任务调度、更严格的类型约束以及对 OpenAI 官方 SDK 的深度兼容支持&#xff0c;使 AI 功能集成从“可选插件”升级为“核心能力”。面试官常…...

网上祭祀平台推荐

随着“文明祭奠、绿色祭扫”理念的深入人心&#xff0c;网上祭祀平台逐渐成为现代人寄托哀思、传承家风的新选择。这类平台既避免了传统祭祀的焚烧污染&#xff0c;又突破了地域与时间的限制&#xff0c;让远方游子随时随地都能为亲人献上一份心意。 在众多平台中&#xff0c;…...

2026年计算机本科就业实录:是“天坑”还是“金矿”?普通本科生的破局指南

站在2026年的毕业季路口&#xff0c;后台每天都能收到大量计算机专业同学的私信&#xff1a;“AI都能写代码了&#xff0c;我们这种普通本科生还有必要找开发岗吗&#xff1f;”“大厂裁员不断&#xff0c;是不是计算机专业真的凉了&#xff1f;”作为一名长期观察互联网招聘趋…...

Freertos——使用队列集优化数据传输

队列集 通常在实际的产品设计中&#xff0c;我们对硬件的原始数据队列和参与操作的软件数据队列应该是分开设计这样能保证我们的业务逻辑能更加清晰独立&#xff0c;并且硬件读取逻辑可以再不同产品中复用会导致一个问题&#xff0c;我们需要在每个硬件读取后进行相应的数据转…...

基于时序卷积与判别性字典学习的齿轮箱变工况故障诊断【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;查看文章底部二维码&#xff08;1&#xff09;时序空洞卷积金字塔与多尺度感受野&#xff1a;齿轮…...

别再只会apt了!在统信UOS/麒麟KOS上,用dpkg命令搞定微信、WPS等.deb包的安装与管理

国产系统进阶指南&#xff1a;dpkg命令在统信UOS/麒麟KOS中的高阶应用 当你在统信UOS或麒麟KOS上双击一个.deb文件却遭遇安装失败时&#xff0c;是否意识到这背后隐藏着一个更强大的工具世界&#xff1f;作为国产操作系统的深度用户&#xff0c;掌握dpkg命令不仅能解决90%的第三…...

零基础快速启用 OpenClaw,保姆级零代码部署教程

Windows 一键部署 OpenClaw 教程&#xff5c;5 分钟搞定本地 AI 智能体&#xff0c;告别复杂配置 点击下载最新 OpenClaw 安装包 2026 年开源圈备受关注的「数字员工」OpenClaw&#xff08;昵称小龙虾&#xff09;&#xff0c;GitHub 星标突破 28 万 &#xff0c;凭借本地运行…...

中文乱码 ubuntu autodl

问题&#xff1a;中文乱码 rootautodl-container-1139448516-8360e2c7:~# ls 0-$\346\250\241\345\236\213\344\270\213\350\275\275-27B-FP8.sh autodl-pub 0-$\346\250\241\345\236\213\344\270\213\350\275\275-27…...

新手开发者首次接入大模型API可能遇到的常见问题与排查思路

新手开发者首次接入大模型API可能遇到的常见问题与排查思路 1. 获取与配置API Key 在Taotoken平台创建API Key是接入的第一步。常见问题包括密钥未正确保存或配置错误。登录Taotoken控制台后&#xff0c;在「API密钥」页面点击「新建密钥」&#xff0c;系统会生成一串以sk-开…...

Java SFTP递归下载踩坑实录:Hutool 5.8.16版本下处理空文件夹和符号链接

Java SFTP递归下载实战&#xff1a;Hutool 5.8.16版本深度优化指南 当我们需要从远程服务器批量下载文件时&#xff0c;SFTP协议因其安全性和可靠性成为首选。然而在实际开发中&#xff0c;递归下载功能往往会遇到各种意料之外的问题。本文将带你深入Hutool 5.8.16版本的SFTP实…...