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

第十章:构建之巅 · 打包与部署的终极试炼

第一章:HTML基石·现实的骨架
第二章:CSS秘典 · 色彩与布局的力量
第三章:JavaScript引擎 · 行为之火
第四章:DOM迷宫 · 掌控页面之心
第五章:异步幻境 · 时间与数据的秘密
第六章:事件风暴 · 用户的意志
第七章:组件之城 · 重构世界的拼图术
第八章:数据幻域 · 状态与响应的涌动之力
第九章:路由边境 · 穿越页面的维度之门

剧情引入:升上云巅

林昊穿越了九章考验,来到最后的“构建之巅”。这里云雾缭绕,站着一位身披编译火焰的老人——“构建长老”。长老说:

“代码完成,并不等于使命达成。你必须学会将源代码编译成浏览器能运行的形式,并安全地交付给用户。”

于是,林昊踏入最后的打包之门——终极试炼:构建与部署。


一、为什么要构建?

开发代码 ≠ 浏览器可直接运行代码

开发中使用的语法和工具,如:

  • ES6+ 高级语法(如 async/await、模块导入)
  • SASS、LESS 预处理器
  • JSX、TSX 模板
  • 模块化组织(import、export)

都需要打包构建,转换为浏览器识别的 HTML/CSS/JS。

二、模块化的奥义

🔹 CommonJS(Node 使用):

// a.js
module.exports = function () {}// b.js
const a = require('./a')

🔹 ESM(浏览器支持,现代前端主流):

// a.js
export default function () {}// b.js
import a from './a.js'

构建工具的使命:扫描这些模块关系,打包成一个或多个浏览器能识别的 bundle。

三、Webpack:构建的炼金术

Webpack 是前端最主流的构建工具之一,它像一个炼金术士,将源码变为纯净的可执行“黄金包”。

⚙ 基本使用:

npm install webpack webpack-cli -D
// webpack.config.js
module.exports = {entry: './src/index.js',output: {filename: 'bundle.js',path: __dirname + '/dist',},module: {rules: [{ test: /\.css$/, use: ['style-loader', 'css-loader'] },]}
}
npx webpack --mode production

🧩 核心概念:

概念说明
Entry入口文件
Output输出设置
Loaders预处理器,如转译 TS/LESS
Plugins插件,如压缩、注入环境变量等
Mode构建模式:development 或 production

四、Vite:极速构建新纪元

构建长老指向一座白色轻舟——“Vite”,飞速而稳定。

Vite 是基于原生 ESM 的现代构建工具,冷启动极快,适合 React/Vue 项目。

npm create vite@latest my-project
cd my-project
npm install
npm run dev

开箱即用,几乎不需配置;支持 HMR 热更新、TS/JSX/SASS、插件机制等。

五、构建优化秘籍

技术术语简述
Tree-Shaking移除未使用的代码
Code Splitting拆分 bundle 实现按需加载
Lazy Loading页面滚动或用户触发时再加载某些模块(如图片、JS)
压缩 Minify使用 Terser、cssnano 等压缩体积
SourceMap映射调试源码位置(生产环境中通常关闭)

六、部署上线:将代码托付给世界

✅ 方法一:GitHub Pages

  1. 将项目推送到 GitHub

  2. 安装部署工具:

    npm install gh-pages -D
    
  3. 修改 package.json:

    "scripts": {"predeploy": "npm run build","deploy": "gh-pages -d dist"
    }
    
  4. 执行部署:

    npm run deploy
    

✅ 方法二:Vercel / Netlify(支持 CI)

  • 可自动读取 Git 仓库并部署静态站点
  • 支持自动构建、回滚、预览环境
  • 免费使用,绑定自定义域名

🧠 实战任务:登顶挑战

  1. 使用 Webpack 或 Vite 构建一个小型前端项目(含组件、样式)
  2. 尝试使用 Tree-Shaking,观察包大小变化
  3. 使用 Netlify 部署项目并访问公网链接
  4. 用 webpack-bundle-analyzer 查看打包体积构成
http://www.xdnf.cn/news/669133.html

相关文章:

  • uniapp-商城-72-shop(5-商品列表,步进器添加商品到的购物车实现)
  • Unsupervised Learning-Word Embedding
  • 如何提高CAD作图设计效率,技术分享
  • 每日算法 -【Swift 算法】实现回文数判断!
  • stm32f系列工程切换到H系列
  • 电芯单节精密焊接机:以先进功能与特点赋能电池制造科技升级
  • 传统数据表设计与Prompt驱动设计的范式对比:以NBA投篮数据表为例
  • PHPStudy 一键式网站搭建工具的下载使用
  • EfficientLLM: Efficiency in Large Language Models 高效大模型
  • AppArmor(Application Armor)是 Linux 内核的一个安全模块
  • 比亚迪“双剑”电池获中汽中心权威认证,堪称“移动安全堡垒”。
  • HTTPS 协议:数据传输安全的坚实堡垒
  • 视频监控汇聚平台EasyCVR工业与安全监控:防爆摄像机的安全应用与注意事项
  • 大模型(5)——编码器(Encoder)、解码器(Decoder)
  • 分布式爬虫监控架构设计
  • Camera相机人脸识别系列专题分析之一:人脸识别系列专题SOP及理论知识介绍
  • 用Qt/C++玩转观察者模式:一个会聊天的设计模式
  • 32.第二阶段x64游戏实战-封包-公共call
  • [Windows] 视频配音:Krillin AI v1.1.4
  • 【NLP基础知识系列课程-Tokenizer的前世今生第一课】Tokenizer 是什么?为什么重要?
  • Mac redis下载和安装
  • 【Docker】存储卷
  • 阿里云配置安全组策略开放端口
  • 阿里云CDN和腾讯云CDN综合对比
  • 飞牛fnNAS之手机访问篇
  • OpenSSH 服务配置与会话保活完全指南
  • 参数/非参数检验和连续/离散/分类等变量类型的关系
  • 好坏质检分类实战(异常数据检测、降维、KNN模型分类、混淆矩阵进行模型评估)
  • Ubuntu20.04系统安装,使用系统盘安装
  • 在thinkphp5.0中。单表使用 model clone 时就会有问题。 需要使用 alias(), 否则会报错。