从零配置开发与生产构建
从零配置开发与生产构建
这篇笔记还在编辑中,内容可能会继续补充、调整或重写。
本阶段目标
理解开发服务器与生产构建是两条目标不同的链路,并能从入口追踪到最终 HTML、JavaScript、CSS 和静态资源。
建立可观察页面
为项目加入以下内容:
- 一个从
src/features/tasks/导入的列表组件 - 一张通过
import引入的图片 - 一个通过
public/原样复制的文件 - 一个开发环境变量
VITE_API_BASE_URL - 一个使用动态
import()打开的编辑面板
然后执行:
pnpm dev
pnpm build
pnpm preview
在浏览器 Network 面板和 dist/ 中比较两种模式。开发阶段强调快速转换和热更新,生产阶段强调可部署产物、内容哈希、代码分块和缓存。
需要解释的链路
index.html
→ src/main.ts
→ App.vue
→ features/tasks/*
→ CSS、图片与动态模块
→ 带内容哈希的生产产物
不要只截图 dist/。应记录每个产物由哪个入口或动态边界产生,以及修改源码后哪些文件哈希发生变化。
环境变量边界
所有进入客户端产物的值都对用户可见。将一个明显的占位值写入 VITE_API_BASE_URL,构建后在产物中搜索它,亲自验证环境变量不是秘密存储。
为环境变量增加类型声明和启动时校验,缺失时应尽早失败,而不是等到首次请求才暴露问题。
故障演练
- 写错动态导入路径,比较开发时和构建时的错误。
- 把不支持的值当作客户端秘密注入,确认它会出现在产物中。
- 直接双击
dist/index.html,理解为什么生产产物仍需要正确的 HTTP 服务和路由回退。
验收标准
- 能画出一个源码模块到生产 Chunk 的路径
- 修改异步模块时,只有相关产物哈希发生变化
- 缺少必要环境变量时,开发和构建会给出明确错误
- README 说明
dev、build、preview的用途和局限 -
dist/中没有令牌、私钥或内部敏感配置
下一篇:接入代码规范与 Git Hooks。