暴躁大妈的荒野传奇:当红K9高清大图引爆全网!
一句话先给结论目录一句话解释node_modules/开发时用的“零件仓库”依赖源码dist/给浏览器用的“成品包”最终可部署文件node_modules 给“程序员和构建工具”用dist 给“服务器和浏览器”用
node_modules/ 是干嘛的它是什么node_modules 是 npm / pnpm / yarn 安装下来的所有依赖包node_modules/├── react/├── react-dom/├── axios/├── date-fns/├── vite/├── radix-ui/└──...这些都是第三方库源码构建工具源码开发依赖它在什么时候用开发 / 构建阶段npm install npm run dev npm run build这时候Vite / Webpack 会从 node_modules 里把你 import 的东西找出来打包进 dist关键点非常重要❌ 浏览器不会直接读取 node_modules❌ 生产服务器不会部署 node_modules它只存在于开发机CI/CD 构建机为什么它这么大因为每个库又依赖别的库依赖树JS 生态是“乐高套乐高”大是正常的删了也能重装rm-rf node_modules npm install
dist/ 是干嘛的它是什么dist 是 build 之后生成的最终产物dist/├── index.html ├── assets/│ ├── index-8f3a9c.js │ ├── index-a12c.css │ └── logo-3fd
svg这些文件是压缩过hash 命名不再是你写的源码它在什么时候生成npm run build例如ViteWebpackCRA它是给谁用的给服务器 浏览器用浏览器 –HTTP-- dist/你部署时NginxCDNS3CloudFront只需要 dist
它们之间的关系关键理解你写的 src/↓import依赖 ↓ node_modules/↓ 构建工具 ↓ dist/↓ 浏览器运行node_modules 从不直接上线dist 是唯一上线目录
为什么 .gitignore 里经常这样写node_modules/dist/原因不同 忽略 node_modules太大可重装平台相关忽略 dist每次 build 都不同CI 可以重新生成⚠️ 但注意某些前端仓库会提交 dist如组件库应用项目通常不提交 dist
React Vite 项目中的典型流程# 开发 npm install # 生成 node_modules npm run dev # 用 node_modules # 构建 npm run build # 生成 dist # 部署 把 dist/上传到服务器
和你熟悉的 Angular 对照一下AngularReactnode_modules/node_modules/完全一样dist/app-name/dist/ng buildnpm run buildng servevite dev最后一句
总结node_modules 是原材料仓库dist 是打包好的成品。
六间房隐藏房间隐藏物品大全-六间房隐藏房间隐藏物品大全应用