Node.js 的包管理器 npm 提供了一个命令 npm install
,用于安装 Node.js 项目所需的依赖包。在使用这个命令时,我们可以通过添加不同的选项来控制依赖包的安装方式。本文将详细介绍这些选项:--save
、--save-dev
、-S
和 -D
的区别。
1. --save(-S)
--save
选项表示将安装的依赖包信息保存到 package.json
文件的 dependencies
字段中。这样做的目的是方便其他开发者在克隆或下载项目后,可以通过运行 npm install
命令自动安装所有依赖包,而无需手动安装每个依赖包。
例如,我们可以使用以下命令安装 Express 框架并将其添加到 dependencies
:
js
npm install express --save
或者使用短选项 -S
:
js
npm install express -S
安装完成后,package.json
文件中的 dependencies
字段将包含 Express 的信息:
json
"dependencies": {
"express": "^4.17.1"
}
2. --save-dev(-D)
--save-dev
选项表示安装的依赖包是开发环境所需的,而不是生产环境。这意味着这些依赖包将被添加到 package.json
文件的 devDependencies
字段中,而不是 dependencies
字段。开发环境的依赖包通常包括测试框架、构建工具等,这些依赖包在生产环境中是不需要的。
例如,我们可以使用以下命令安装 Mocha 测试框架并将其添加到 devDependencies
:
js
npm install mocha --save-dev
或者使用短选项 -D
:
js
npm install mocha -D
安装完成后,package.json
文件中的 devDependencies
字段将包含 Mocha 的信息:
json
"devDependencies": {
"mocha": "^8.4.0"
}
3. 选项的区别
总结一下,这些选项的区别如下:
--save
(或-S
):安装的依赖包将添加到package.json
文件的dependencies
字段中。这些依赖包在开发和生产环境中都需要。--save-dev
(或-D
):安装的依赖包将添加到package.json
文件的devDependencies
字段中。这些依赖包仅在开发环境中需要,生产环境中不需要。
在实际项目中,我们需要根据依赖包的用途来选择合适的选项。通常,对于应用程序运行时需要的依赖包,我们使用 --save
选项;对于开发、测试和构建过程中需要的依赖包,我们使用 --save-dev
选项。