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