devDependencies 与 dependencies 的区别
package.json 中两种依赖类型的使用场景和安装方式
问题
package.json 文件中的 devDependencies 和 dependencies 有什么区别?
解答
dependencies
dependencies 用于指定生产环境运行所需的依赖项,这些包会被打包到最终的应用中。
{
"dependencies": {
"react": "^18.2.0",
"axios": "^1.4.0",
"lodash": "^4.17.21"
}
}
安装方式:
npm install <package-name>
# 或
npm install <package-name> --save
devDependencies
devDependencies 用于指定开发过程中所需的依赖项,这些包不会被打包到生产环境。
{
"devDependencies": {
"webpack": "^5.88.0",
"eslint": "^8.45.0",
"jest": "^29.6.0",
"@types/react": "^18.2.0"
}
}
安装方式:
npm install <package-name> --save-dev
# 或
npm install <package-name> -D
安装行为
# 安装所有依赖(包括 dependencies 和 devDependencies)
npm install
# 仅安装 dependencies(生产环境)
npm install --production
关键点
dependencies是运行时必需的依赖,会被打包到生产环境devDependencies是开发时使用的工具,如测试框架、构建工具、代码检查工具- 生产环境部署时使用
npm install --production可以只安装dependencies,减小体积 - 正确区分两者可以优化安装速度和部署包大小
目录