npm install dependencies与devDependencies

amnesia999 / 2024-10-23 / 原文

一、生产环境与开发环境

dependencies: 生产环境下的依赖管理;(上线后)
devDependencies: 开发环境下的依赖管理;(开发中)

二、npm install

默认情况下,npm install 将安装 package.json 中列为依赖的所有模块。
使用 --production 标志(或者当 NODE_ENV 环境变量设置为 production 时),npm 将不会安装 devDependencies 中列出的模块

默认情况下,npm install 将任何指定的包保存到 dependencies 中。此外,你可以使用一些额外的标志来控制它们的保存位置和方式。

命令 缩写 安装位置
dependencies
--save -S dependencies
--save-prod -P dependencies
--save-dev -D devDependencies

使用npm rm 命令,从 package.json 中删除依赖。

三、如何区分依赖该以何种形式安装

devDependencies只会在开发环境下使用,生产环境不会被打入包内;而dependencies不仅在开发环境中要使用,生产环境也需要使用到。

例如,webpack作为打包工具,我们只希望它完成打包工作,并不希望它融入我们的项目代码中,即只存在于开发环境,因此把它归类为"开发依赖"。

同理,jest作为测试框架,我们只希望它在开发环境中完成测试工作,它不需要融入打包后的项目代码,所以保存到devDependencies。

如果仍旧无法区分,框架官方会提供默认安装语句,按照指引安装即可。

参考来源:https://npm.nodejs.cn/cli/v9/commands/npm-install#概要