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

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

相关推荐
懂懂tty3 小时前
React状态更新流程
前端·react.js
小码哥_常4 小时前
告别繁琐!手把手教你封装超实用Android原生Adapter基类
前端
skywalk81634 小时前
pytest测试的时候这是什么意思?Migrating <class ‘kotti.resources.File‘>
前端·python
一只蝉nahc4 小时前
vue使用iframe内嵌unity模型,并且向模型传递信息,接受信息
前端·vue.js·unity
子兮曰5 小时前
Bun v1.3.12 深度解析:新特性、性能优化与实战指南
前端·typescript·bun
2401_885885046 小时前
易语言彩信接口怎么调用?E语言Post实现多媒体数据批量下发
前端
a1117766 小时前
Three.js 的前端 WebGL 页面合集(日本 开源项目)
前端·javascript·webgl
Kk.08026 小时前
项目《基于Linux下的mybash命令解释器》(一)
前端·javascript·算法
MXN_小南学前端6 小时前
前端开发中 try...catch 到底怎么用?使用场景和最佳实践
javascript·vue.js
小李子呢02117 小时前
前端八股---闭包和作用域链
前端