npm install 安装选项 -d -s -g

在使用 npm install 时,-d-g-s 是不同的选项,它们分别代表不同的安装模式或行为。以下是它们的详细解释:

1. -d--save-dev

  • 含义 :将包安装为开发依赖(devDependencies)。

  • 使用场景:如果某个包仅在开发阶段使用,例如测试工具、构建工具或代码检查工具。

  • 效果 :会将安装的包记录在 package.jsondevDependencies 字段中。

  • 例子

    复制代码
    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.jsondependencies 字段中。

  • 例子

    复制代码
    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.jsondependencies 字段。

  • 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

如果你不确定要用哪种方式安装,可以根据项目需求选择合适的选项。

相关推荐
counterxing7 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq7 小时前
windows下nginx的安装
linux·服务器·前端
之歆7 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜8 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108088 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
kyriewen9 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
humcomm10 小时前
元框架的工作原理详解
前端·前端框架
canonical_entropy10 小时前
Attractor Before Harness: AI 大规模开发的方法论
前端·aigc·ai编程
zhangxingchao11 小时前
多 Agent 架构到底怎么选?从 Claude Agent Teams、Cognition/Devin 到工程落地原则
前端·人工智能·后端
IT_陈寒11 小时前
SpringBoot那个自动配置的坑,害我排查到凌晨三点
前端·人工智能·后端