生产依赖是项目上线后运行必需的包,如react、axios;开发依赖仅用于开发阶段,如eslint、webpack,安装时用-d选项写入devdependencies,部署时--production会跳过它们。

区分生产依赖和开发依赖,关键看这个包在项目上线后是否还必须存在。
看用途:运行时需要还是仅开发时用
生产依赖是应用启动和运行过程中离不开的,比如 react、axios、express。没有它们,页面打不开或接口调不通。
开发依赖只参与开发过程,比如 eslint(检查代码)、webpack(打包)、jest(写测试)。这些工具在代码部署到服务器后就完全不参与运行了。
看安装命令:-D 和默认行为不同
安装时加 -D 或 --save-dev,包会写进 devDependencies 字段:
npm install eslint -Dnpm install vite --save-dev
不加任何标志,或者显式加 -S / --save,包会写进 dependencies 字段:
npm install axiosnpm install lodash --save
看部署行为:--production 会跳过 devDependencies
在服务器上执行 npm install --production,只会装 dependencies 里的包,devDependencies 一个都不会装。这能减小体积、加快启动、降低安全风险。
本地开发时运行 npm install(不带参数),两个字段的包都会装。
看 package.json:字段位置一目了然
打开项目的 package.json,直接看这两个字段:
- "dependencies":列的是上线后要跑起来的东西
- "devDependencies":列的是帮你写代码、测代码、打包代码的工具
如果不确定某个包该放哪,先查它的官方文档;没说明就按实际用途判断——上线后还要用它吗?要,就放 dependencies;不要,就放 devDependencies。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











