编译与构建Compile & Build
一句话
编译是把源代码转换成另一种可运行的形式;构建是编译、打包、压缩等一整套步骤,产出能上线的文件。
大白话
编译和构建像出版一本书:编译是把手稿翻译成读者能读的语言,构建是从翻译、排版到装订成册的全过程,最后交出能上架的成书。
比喻的边界
译错了读者还能读出来,构建出错往往直接失败;而且开发时看到的页面由开发服务器即时处理,和构建出的正式版本不完全一样。
拿去就能用
我的要准备上线了。帮我运行一次构建,告诉我产出的文件在哪个文件夹、每类文件是什么,再用本地预览打开构建结果,确认页面和开发时一致。
还差:项目类型,发给 AI 前记得换掉
本地构建成功,部署平台上构建却失败,日志说找不到某个模块。我怀疑两边的 Node 版本或依赖不一样,先帮我对比本地和平台日志里的版本信息,贴日志前敏感信息换成 ***,再判断原因。
我的网站首页要加载好几秒,构建出来的 JavaScript 文件有几兆。帮我分析构建产物里哪些部分最大、从哪来,给出两三个减小体积的办法和各自的代价,先说再改。
别这样说 → 这样说
别这样说
打包报错了,你帮我看看。
这样说
本地 npm run dev 一切正常,但 npm run build 失败,第一条报错是 “Could not resolve './components/Header'”。帮我先检查这个路径和实际文件名的大小写是否一致,确认原因再改,改完再构建一次给我看结果。
差别:区分了开发和构建,贴出第一条报错,并要求改完重新构建。
误解编译一定是把代码变成机器码。
其实是编译只是从一种形式转成另一种,比如 TypeScript 编译成 JavaScript;网页项目的“构建”还包括打包、压缩等步骤。
展开专业理解
编译把一种语言转换成另一种格式或语言,可以提前做,也可以在运行时即时进行。高级语言之间的转换,比如 TypeScript 转 JavaScript,也常叫转译。网页项目的构建工具会把众多源文件合并、压缩,生成适合静态托管的产物,通常放在 dist 这类文件夹里,上线的是这些产物而不是源代码。
来源
- MDN:Compile(术语表) 核对于 2026-09-26
- Vite 文档:Building for Production 核对于 2026-09-26