web应用构建与部署的本质区别
“构建”和“部署”是程序员最常听到的两个词,但其实很多人最初都会混淆。
1、总结
- 构建(Build):把你写的“源代码”加工成能运行的“成品”。
- 部署(Deploy):把这个“成品”放到服务器或应用环境中,让别人能访问或使用。
2、举个生活例子
你可以把整个过程想象成:
👨🍳 你写代码 → 就像在厨房做饭。
| 阶段 | 对应行为 | 举例说明 |
|---|---|---|
| 开发 | 写源代码 | 在厨房里准备食材、调味 |
| 构建(Build) | 把代码编译、打包成可运行的文件 | 把食材加工成一道完整的菜 |
| 部署(Deploy) | 把菜端上桌(让用户能吃) | 把打包好的文件放到服务器上、能让用户访问 |
3、举个 React / Vue 项目例子
你本地的代码:
src/├── App.vue├── main.js├── components/└── assets/
这些是开发用源码,浏览器或服务器是不能直接识别这些文件的。
当你执行:
npm run build
构建工具(如 webpack、vite、react-scripts)会做:
把 .vue / .jsx / .ts 等源文件 编译成纯 JavaScript
压缩代码、去掉注释
把图片、字体、样式合并成最少文件
输出到一个 dist 或 build 文件夹:
dist/├── index.html├── assets/└── js/
这就是“构建结果”,它是一套真正可以运行在浏览器上的文件。
然后是“部署”
部署就是:
把上面构建出来的 dist/ 文件夹上传到服务器,让别人能访问。
举例:
| 场景 | 部署方式 |
|---|---|
| Web前端项目 | 把 dist/ 上传到 Nginx 或静态网站托管(如 Vercel、Netlify、阿里云OSS) |
| Node.js后端项目 | 上传到云服务器(Linux)并用 pm2 启动服务 |
| 移动App项目 | 打包成 APK/IPA 上传到 App Store / Play 商店 |
构建 & 部署的关系图
开发 (src/)↓
构建 (npm run build)↓
生成 dist/↓
部署 (上传到服务器 / 发布)↓
用户访问项目网址
4、小结对比表
| 对比项 | 构建(Build) | 部署(Deploy) |
|---|---|---|
| 意义 | 生成可运行版本 | 把运行版本放到运行环境 |
| 运行地点 | 本地 | 服务器 / 云端 |
| 工具 | webpack、vite、babel | nginx、pm2、docker、ftp、jenkins |
| 产物 | dist/、build/ 文件夹 | 线上网站、可访问URL |
| 类比 | 做菜 | 端菜上桌 |
