【install命令中的-g, -S, -D参数详细介绍】

install命令中的-g, -S, -D参数详细介绍

  • 1. install命令中的-g, -S, -D参数

1. install命令中的-g, -S, -D参数

install 命令在不同的上下文中有不同的含义,例如在 Unix/Linux 系统中,install 是一个用来复制文件和设置属性的命令,然而,根据你的问题提法,这里似乎指的是在 Node.js 环境中使用的 npm installyarn add 等命令中使用的参数。在 Node.js 包管理器(npm 或 yarn)中,-g-S-D 等参数用于指定安装包的不同方式和目的。

命令含义
npm install下载“package.json”中dependencies和devdependencies中配置的所有依赖模块,并保存到项目的node_modules目录
npm install xxx -g全局安装,下载依赖模块,并保存到%node_home%\node_global\node_modules目录下
npm install xxx -S写入到package.json的dependencies对象,并保存到项目的node_modules目录
npm install xxx -D写入到package.json的devDependencies对象,并保存到项目的node_modules目录

注1:在git clone项目的时候,项目文件中并没有node_modules文件夹,为什么呢?
我们知道这个文件中(project_home\node_modules)保存的是我们项目开发中所使用的依赖模块,这个文件夹可能有几百兆大小,如果放到github上,其它人clone的时候会非常慢,这个时候就想到用一个package.json依赖配置文件解决这个问题,这样每个人下载这个项目的时候,只需要进入该项目目录直接npm install npm就会到里面去找需要的函数库,也就是依赖。

缩写命令的全称,注意大小写、-S,-D都是大写

命令简称
installi
--save-S
--save-dev-D
--global-g
  1. -g (全局安装)

    • 当使用 npm install -g <package-name>yarn global add <package-name> 命令时,-g 参数用于全局安装一个包。这意味着这个包将被安装在系统的全局目录中,并且它的可执行文件(如果有的话)将被添加到系统的 PATH 中,从而可以从任何位置调用它。
  2. -S (也就是 --save 的缩写)

    • 在早期的 npm 版本中(npm 5 之前),使用 npm install <package-name> -S 会将包添加到 package.json 文件中的 dependencies 部分。这是用于那些在应用运行时需要依赖的包。从 npm 5 开始,默认行为已经改变,现在即使不加 -S 参数,安装的包也会自动被添加到 package.jsondependencies 中。
  3. -D (也就是 --save-dev 的缩写)

    • 使用 npm install <package-name> -Dyarn add <package-name> --dev 命令时,-D 参数用于将包添加到 package.json 文件中的 devDependencies 部分。devDependencies 是指那些仅在开发过程中需要的包,例如编译工具、测试框架和代码压缩工具等。在生产环境部署应用时,通常不会安装 devDependencies

总结一下,-g 用于全局安装,-S(通常已非必需)用于添加到 dependencies,而 -D 用于添加到 devDependencies。随着包管理器(特别是 npm)的发展,这些标志的默认行为可能已经发生了变化,但它们的基本含义保持一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贪心算法详解

文章目录 前言一、什么是贪心算法二、贪心算法的特点1.贪心策略的提出2.贪心策略的正确性 三、学习贪心算法的方向总结 前言 在本次文章中我们将会详细介绍贪心算法的相关内容 一、什么是贪心算法 贪心算法&#xff1a;在解决问题时&#xff0c;每一步都选择最优解&#xff0…

Linux:vim的相关知识

目录 vim 是一个较为常见的编译文件的命令操作。 三种模式的区分的作用如下&#xff1a; 命令模式&#xff1a; 插入模式&#xff1a; 进入插入模式的标志&#xff1a;左下角有INSERT 底行模式&#xff1a; 命令模式的常见命令&#xff1a; 底行模式常见命令&#xff1…

初识k8s(概述、原理、安装)

文章目录 概述由来主要功能 K8S架构架构图组件说明ClusterMasterNodekubectl 组件处理流程 K8S概念组成PodPod控制器ReplicationController&#xff08;副本控制器&#xff09;ReplicaSet &#xff08;副本集&#xff09;DeploymentStatefulSet &#xff08;有状态副本集&#…

借助GPT,我是如何帮同事秒解bug

背景 昨天晚上8点多&#xff0c;正准备下班 同事突然跑过来&#xff0c;问我&#xff1a;为什么用aws命令行下载的数据可以正常下载&#xff0c;但是我用Go写的&#xff0c;怎么下载不下来 看他抓耳挠腮&#xff0c;然后又说困扰了很久 我心想这么简单的问题&#xff0c;额。。…

系统性学习vue-vue-router

vue-router 路由的简介SPA路由 路由的基本使用安装引入使用标签式编程式 注意 嵌套(多级)路由路由传参query参数params参数 命名路由路由的props配置router-link的replace属性编程式路由导航路由跳转后退和前进 缓存路由组件两个新的生命周期钩子函数路由守卫全局前置守卫全局后…

让二叉树无处可逃

志不立&#xff0c;天下无可成之事。 ——王阳明 二叉树 1、树&#xff1f;什么是树1、1、基本概念1、2、树的相关概念1、3、树的表示方式1、4、树的实际运用 2、二叉树&#xff1f;只有两个分支吗&#xff1f;2、1、基本概念2、2、二叉树的相关定义2、3、二叉树的相关性质2、4…

C++: vector

目录 1.vector的介绍 2.vector常用的接口 1.vector构造 2.迭代器iterator的使用 3.vector空间增长 4.vector的增删改查 3.vector模拟实现 如果在reverse时使用memcpy会怎么样&#xff1f; 1.vector的介绍 C中的vector是一个动态数组容器&#xff0c;可以存储任意类型的…

simulink限幅模块-Saturation

限幅模块 限幅模块&#xff08;Saturation&#xff09;对输出值施加了上下限约束。当输出值超过上限时&#xff0c;限定于上限值输出&#xff1b;当输出值低于下限时&#xff0c;限定于下限值输出&#xff1b;在上下限之间时&#xff0c;保持原输出。Saturation模块默认包含一…

网络安全--防御保护02

第二天重要的一个点是区域这个概念 防火墙的主要职责在于控制和防护---安全策略---防火墙可以根据安全策略来抓取流量之后做出对应的动作 防火墙的分类&#xff1a; 单一主机防火墙&#xff1a;专门有设备作为防火墙 路由集成&#xff1a;核心设备&#xff0c;可流量转发 分…

为什么单片机不能直接驱动继电器和电磁阀?

为什么单片机不能直接驱动继电器和电磁阀&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&…

Spring核心容器IOC案例讲解,带你理解IOC

Universe Infinity inc. 什么是IOC容器,先把IOC给忽略到,其实就是个容器。 什么?容器又是个啥玩意?容器是用来放东西的东西啊。 各个领域都喜欢起一些专业术语,显得很高级。给你讲IOC是不是很高级,给你讲Map是不是就明白了。 bean对象最终存储在spring容器中,在spring源…

配置Mycat服务

1.安装mycat 2.修改配置 vim /usr/local/mycat/conf/users/root.user.json 设置客户端连接mucat 服务器时 使用的用户名和密码:定义客户端连接mycat服务使用用户及密码&#xff1a; vim /usr/local/mycat/conf/datasources/prototypeDs.datasource.json 访问 3306使用的账…

vue3源码(一)搭建开发环境

Monorepo:是管理项目代码的一个方式&#xff0c;指在一个项目仓库(repo)中管理多个模块/包(package) vue3源码采用Monorepo管理项目 vue3项目架构 搭建Monorepo环境 1.全局安装pnpm npm install pnpm -g # 全局安装pnpm pnpm init -y # 初始化配置文件创建.npmrc文件&#x…

代码随想录算法训练营day28 || 93.复原IP地址,78.子集,90.子集II

视频讲解&#xff1a; 回溯算法如何分割字符串并判断是合法IP&#xff1f;| LeetCode&#xff1a;93.复原IP地址_哔哩哔哩_bilibili 回溯算法解决子集问题&#xff0c;树上节点都是目标集和&#xff01; | LeetCode&#xff1a;78.子集_哔哩哔哩_bilibili 回溯算法解决子集问题…

Docker基础语法

目录 一.docker安装 二.docker基础名词 三.docker基础命令 四.命令别名 五.数据卷 六.挂载本地目录或文件 七.Docker镜像 八.网络 一.docker安装 1.安装yum工具 yum install -y yum-utils device-mapper-persistent-data lvm2 2.安装 docker yum源 yum-config-manag…

【Effective C++11】5. 实现

Item26 尽量延后变量定义式的出现时间 定义变量&#xff08;自定义变量&#xff09;未使用&#xff0c;会承担构造成本和析构成本&#xff0c;考虑以下场景&#xff1a; 如果有异常出现&#xff0c;encrypted 没有被使用&#xff0c;但是会付出构造和析构的成本&#xff1b;通…

WEB前端伪类选择器以及伪元素选择器

表单补充 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><form action"#" method"get" enctype"text/plain"><!-- <input type"…

EXECL 单元格字符串链接 CONCAT :应用:将一行数据转为json

源&#xff1a; 目标 函数表示 CONCAT("data", CHAR(10), "{", CHAR(10), " ", "ulAlarmId : ", A5, CHAR(10), " ", "ulAlarmLevel : ", D5, CHAR(10)," ", "bBo…

JavaEE-微服务-Vuex

Vuex 2.1 什么是Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 Vuex在组件之间共享数据。 2.2 使用 vue cli 构建项目 2.3 入门案例 2.3.1 定义数据 export default new Vuex.Store({state: { // 状态区域&#xff08;定义变量区域&#xff09;user: ,toke…

python学习笔记10(循环结构2)

&#xff08;一&#xff09;循环结构2 1、扩展模式 语法&#xff1a; for 循环变量 in 遍历对象&#xff1a; 语句块1 else: 语句块2 说明&#xff1a;else在循环结束后执行&#xff0c;通常和break和continue结合使用 2、无限循环while while 表达式&#xff1a; 语句块…