从 npm run build 到生产上线:VuePack 生产构建优化与部署清单
从 npm run build 到生产上线VuePack 生产构建优化与部署清单【免费下载链接】vuepack:package: A modern starter which uses Vue 2, Vuex, Vue-router and Webpack 2 (and even Electron)项目地址: https://gitcode.com/gh_mirrors/vu/vuepackVuePack 是一个现代化的 Vue 2 起步模板内置 Vuex、Vue-router 和 Webpack 2开箱即用地帮你完成从npm run build生产构建到线上部署的全过程。这篇文章带你快速看懂 VuePack 生产构建优化都做了哪些事并附上一份可直接照做的部署检查清单10 分钟搞定上线前的最后一关。一条命令完成生产构建在生成的项目里构建命令已经预置在 template/package.json 中npm run build它实际执行的是webpack --config build/webpack.prod.js由 template/build/webpack.prod.js 驱动整个生产流程。构建完成后默认模式产物输出到项目根目录的./dist开启 Electron 模式产物输出到./app/dist 每次构建前VuePack 会用 rimraf 自动清空旧产物目录保证dist里永远是干净、完整的发布文件无需手动清理。VuePack 内置的 6 项生产构建优化打开 template/build/webpack.prod.js你会发现生产环境已默认启用以下优化这也是 Webpack 生产优化清单的核心项优化项实现方式收益1. 代码压缩UglifyJsPlugin去掉注释并压缩JS 体积显著减小2. 长期缓存文件名带[chunkhash:8]内容哈希内容不变则浏览器命中缓存3. 第三方库拆分CommonsChunkPlugin 抽出vendor与manifest两个 chunk业务代码更新不影响依赖缓存4. CSS 独立提取ExtractTextPlugin 生成styles.[contenthash:8].css样式可并行加载、可缓存5. PWA 离线能力OfflinePlugin 生成 Service Worker页面支持离线访问6. 环境标识注入DefinePlugin 注入process.env.NODE_ENV productionVue 等库自动走生产分支去掉调试逻辑其中几个值得新手注意的细节长期缓存template/build/webpack.prod.js 中把输出文件名改为[name].[chunkhash:8].js样式文件同样带 contenthash这正是实现内容变、文件名变、缓存失效的标准做法。性能提示template/build/webpack.base.js 在生产环境下启用了 performance hints 告警当某个 chunk 过大时控制台会给出体积警告方便你及时发现胖包。Source MapWeb 模式的生产构建会附带 source-map便于线上排查报错Electron 模式则不生成。PWA 离线OfflinePlugin 只在生产环境生效开发环境不会干扰调试详细说明见 docs/pwa.md 和 template/client/pwa.js。构建产物长什么样dist/ ├── index.html # HtmlWebpackPlugin 生成的入口页 ├── app.[chunkhash:8].js # 业务代码 ├── vendor.[chunkhash:8].js ├── manifest.[chunkhash:8].js ├── styles.[contenthash:8].css └── static/... # static/ 目录整体复制而来入口 HTML 由 template/build/index.html 模板生成想自定义标题、meta 信息直接改这个模板即可。项目根目录static/下的文件如 template/static/favicon.ico会被 CopyWebpackPlugin 原样复制到dist根目录静态资源使用方式见 docs/static-files.md。部署前必做的 3 项配置1. 检查 publicPath 静态资源路径这是最容易踩坑的一项。在 template/build/config.js 中普通 Web 部署保持/即可站点根路径部署部署在子路径或 CDN改为对应绝对路径如/my-app/Electron 模式使用相对路径./publicPath配错上线后页面白屏、图片和 JS 404 基本都是它引起的。2. 确认 SPA 路由回退如果你使用 history 模式刷新子路由如/about时服务器必须把未匹配的路径全部回退到index.html。以 Nginx 为例location / { try_files $uri $uri/ /index.html; }3. 验证 Service Worker 离线缓存开启 PWA 的项目部署后请用飞行模式或 DevTools 断网刷新页面确认离线缓存生效。若不需要离线能力按 docs/pwa.md 中的说明移除对应配置即可。✅ 生产部署检查清单按顺序勾选逐项核对后再点发布本地执行npm run build无报错且无 performance 体积告警dist/中同时存在带 hash 的 JS、styles.*.css和index.htmlpublicPath与目标部署路径一致服务器已配置 history 路由回退到index.html线上访问页面Network 面板中 JS/CSS 返回了正确缓存头刷新子路由不出现 404可选断网验证 Service Worker 离线缓存结语VuePack 把压缩、长期缓存、vendor 拆分、CSS 提取和 PWA 离线这些 Webpack 生产优化默认做全你只需要关注config.js里的publicPath和服务端的路由回退两件事。照着上面的清单逐项打勾npm run build之后你的 Vue 应用就能稳稳地上线了。更多构建细节可参考模板目录 template/build/ 下的配置文件或完整文档 README.md。【免费下载链接】vuepack:package: A modern starter which uses Vue 2, Vuex, Vue-router and Webpack 2 (and even Electron)项目地址: https://gitcode.com/gh_mirrors/vu/vuepack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Gumroad 开源电商平台:数字产品创作者的自建商店完整方案

Gumroad 开源电商平台:数字产品创作者的自建商店完整方案

Gumroad 开源电商平台:数字产品创作者的自建商店完整方案 【免费下载链接】gumroad See what sticks 项目地址: https://gitcode.com/GitHub_Trending/gumr/gumroad Gumroad 是一套生产级开源电商平台,完整源码就在这个仓库里。克隆下来跑通之后&…

2026/10/4 15:17:56 阅读更多 →
Elixir TIL:用 Map.get_and_update/3 更新 Map 键值并优雅处理缺失键

Elixir TIL:用 Map.get_and_update/3 更新 Map 键值并优雅处理缺失键

文档教程知识库 【免费下载链接】til :memo: Today I Learned 项目地址: https://gitcode.com/gh_mirrors/ti/til 点击查看 免费下载 本篇技术指南围绕 TIL 仓库中的 elixir/updating-values-in-a-map.md 笔记展开,深入讲解 Elixir 标准库 Map 模块的 g…

2026/10/4 15:17:56 阅读更多 →
ThingsBoard HTML 容器 Widget 实战:可调整大小的 Split 主从布局样式实现(angular_split_css)

ThingsBoard HTML 容器 Widget 实战:可调整大小的 Split 主从布局样式实现(angular_split_css)

物联网后端数据可视化消息队列 【免费下载链接】thingsboard All-in-one IoT Platform - Device management, data collection, processing and visualization. 项目地址: https://gitcode.com/GitHub_Trending/th/thingsboard 点击查看 免费下载 ThingsBoard 的 H…

2026/10/4 15:17:56 阅读更多 →

最新新闻

【AI】五分钟快速上手 OpenClaw 并接入 QQ:TaoToken 统一 Key 配置实战

【AI】五分钟快速上手 OpenClaw 并接入 QQ:TaoToken 统一 Key 配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 15:54:22 阅读更多 →
毕业论文神器!盘点2026年备受追捧的AI论文写作工具与TaoToken接入实践

毕业论文神器!盘点2026年备受追捧的AI论文写作工具与TaoToken接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 15:54:22 阅读更多 →
Coding Agent 工作流设计:Claude Code 与 Codex 的 Agent Loop 融合实践(TaoToken 统一接入)

Coding Agent 工作流设计:Claude Code 与 Codex 的 Agent Loop 融合实践(TaoToken 统一接入)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 15:54:22 阅读更多 →
Open Code教程(二)| 命令与技巧:从 Plan 到 Build 的完整工作流拆解

Open Code教程(二)| 命令与技巧:从 Plan 到 Build 的完整工作流拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 15:54:22 阅读更多 →
嵌入式驱动开发:硬件时序与Linux内核实战指南

嵌入式驱动开发:硬件时序与Linux内核实战指南

1. 驱动开发不是写代码,是和硬件“谈判”的过程 很多人刚入行时以为嵌入式驱动开发就是“在Linux里写个.ko文件,insmod一下完事”。我带过十几届实习生,90%的人第一次调试SPI设备时,都在 probe() 函数里卡住超过三天——不是代码…

2026/10/4 15:54:22 阅读更多 →
软件工程学习笔记(week2):用TaoToken统一Key梳理瀑布模型与迭代式开发模型

软件工程学习笔记(week2):用TaoToken统一Key梳理瀑布模型与迭代式开发模型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 15:53:21 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →