在使用 npm install 时,-d、-g 和 -s 是不同的选项,它们分别代表不同的安装模式或行为。以下是它们的详细解释:
1. -d:--save-dev
-
含义 :将包安装为开发依赖(
devDependencies)。 -
使用场景:如果某个包仅在开发阶段使用,例如测试工具、构建工具或代码检查工具。
-
效果 :会将安装的包记录在
package.json的devDependencies字段中。 -
例子 :
npm install some-package -d # 等价于 npm install some-package --save-dev
2. -g:--global
-
含义:全局安装一个包。
-
使用场景:通常用于安装命令行工具或全局可用的依赖。
-
效果 :包会安装在全局环境中(例如
/usr/local/lib/node_modules或 Windows 的全局目录),而不是当前项目的node_modules。 -
例子 :
npm install some-package -g # 等价于 npm install some-package --global -
注意:全局安装的包可以直接通过命令行使用,但项目中的代码通常无法直接引用全局包。
3. -s:--save
-
含义 :将包安装为生产依赖(
dependencies)。 -
使用场景:如果某个包需要在生产环境中使用,例如运行时的库。
-
效果 :会将安装的包记录在
package.json的dependencies字段中。 -
例子 :
npm install some-package -s # 等价于 npm install some-package --save -
注意 :从 npm 5.x 开始,
--save是默认行为,因此可以省略-s选项。
默认安装选项取决于所使用的 npm 版本:
默认行为
-
从 npm 5.x 开始:
-
默认安装到
dependencies中(等同于使用--save或-s)。 -
也就是说,运行以下命令:
npm install some-package会将
some-package安装到node_modules中,并记录到package.json的dependencies字段。
-
-
在 npm 5.x 之前:
- 默认安装不会记录到
package.json中。 - 如果需要记录到
dependencies,必须显式使用--save或-s。
- 默认安装不会记录到
总结
| npm 版本 | 默认行为 | 是否记录到 package.json |
|---|---|---|
| npm 5.x 及以后 | 安装为 dependencies |
是 |
| npm 5.x 之前 | 安装但不记录到 package.json |
否 |
如果你使用的是较新版本的 npm,无需显式使用 -s 或 --save,直接运行 npm install 包名 即可满足生产环境依赖的需求。
| 参数 | 长选项 | 安装类型 | 存储位置 |
|---|---|---|---|
-d |
--save-dev |
开发依赖 | devDependencies |
-g |
--global |
全局安装 | 全局目录 |
-s |
--save |
生产依赖(默认) | dependencies |
如果你不确定要用哪种方式安装,可以根据项目需求选择合适的选项。