在使用 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 |
如果你不确定要用哪种方式安装,可以根据项目需求选择合适的选项。