npm install 安装包时,常用的-S 、-D 、-g与直接npm 有什么区别?

news/2024/7/7 18:48:49

一、主要区别就是依赖配置写入package.json文件的位置不同而已

npm install 本身就有一个别名 npm i

👉 npm i module_name -S    

即  npm install module_name --save     写入dependencies,发布到生产环境

这样安装是局部安装的,会写进package.json文件中的dependencie里。

dependencies: 表示生产环境下的依赖管理;

说白了你安装一个库如果是用来构建你的项目的,比如echarts、element-ui,是实际在项目中起作用,就可以使用 -s 来安装。

👉 npm i module_name -D   

即  npm install module_name --save-dev  写入devDependencies,发布到开发环境

这样安装是局部安装的,会写进package.json文件中的devDependencies 里。

devDependencies :表示开发环境下的依赖管理;

如果你安装的库是用来打包的、解析代码的,比如webpack、babel,就可以用 -d 来安装,项目上线了,这些库就没用了,不然留这些库给用户自己来打包和解析代码嘛。

👉 npm i module_name -g    

即  global全局安装(命令行使用)

npm install module_name -g,表示全局安装,安装一次过后,你就可在其他地方直接用啦。

👉 npm i module_name       

即  本地安装(将安装包放在 ./node_modules 下)

npm install module_name   什么都不加的时候

npm5 开始通过 npm install module_name 什么都不加 和 npm install module_name --save一样,都是局部安装并会把模块自动写入package.json中的dependencies里。

我们在使用npm install 安装模块或者插件时,若写到package.json文件中,用

--save-dev (写入package.json的devDependencies)  或  --save (写入package.json的dependencies)

注意:-D,-S 分别是 --save-dev和 --save的简写,默认就是 -S,可以省略不写

二、devDependencies与dependencies有什么区别呢?

devDependencies  表示开发环境下的依赖管理,里面的插件只用于开发环境(开发时依赖),不用于生产环境,例如vite、sass插件等(打包后就跟他没关系了);

开发时依赖:简单的说就是项目运行时不需要,只有程序员开发代码阶段才需要用到的工具

dependencies 表示生产环境下的依赖管理,里面的插件只用于生产环境(运行时依赖),是需要发布到生产环境的,例如vue、element-plus等等。

如下图所示:sass仅用于生成环境,我们就使用npm i sass -D

扩展: npm模块的安装与移除

🎈 npm安装模块

【npm install xxx】利用 npm 安装xxx模块到当前命令行所在目录;

【npm install -g xxx】利用npm安装全局模块xxx;

【npm install xxx】安装但不写入package.json;

【npm install xxx –save】 安装并写入package.json的”dependencies”中;

【npm install xxx –save-dev】安装并写入package.json的”devDependencies”中。

🎈 npm 删除模块

【npm uninstall/remove  xxx 】删除xxx模块;
【npm uninstall/remove  -g xxx】删除全局模块xxx;
并不能自动更新package.json,把xxx从dependencies,devDependencies,optionalDependencies中去掉。

只有加上对应参数才可以:-S,–save:dependencies
————————————————
版权声明:本文为CSDN博主「儒雅的烤地瓜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sunyctf/article/details/127667543


http://lihuaxi.xjx100.cn/news/1102175.html

相关文章

CentOS 7.x 安装 ZooKeeper 并实现集群搭建

0. 集群结构 服务器IPhostname节点说明192.168.31.101master主节点192.168.31.102slave1从节点192.168.31.103 slave2 从节点 下面的安装与配置操作需要在三台服务器上都执行一遍。 1. 安装JDK ZooKeeper要求运行在 JDK 环境上,JDK安装教程可参考 CentOS 7.x 安装…

Wireless-Sensor-Network-master_WSN_无线传感网络(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 近年来,随着对等网络、云计算和网格计算等分布式环境的发展,无线传感器网络(WSN&#xff0…

33. Kubernetes 核心组件讲解——etcd

本章讲解知识点 etcd 概述Raft 原理简介etcd 其他应用场景etcd 不算 Kubernetes 自研组件,etcd 自身是一个开源组件,Kubernetes 集成了它而已。但我们还是有必要讲讲 etcd。 1. etcd 概述 1.1 概述 etcd 是一个高可用的分布式键值存储系统,被用来存储 Kubernetes 集群中的…

Vuex从了解到实际运用(二)——获取vuex中的全局状态(state getters)

vuex从了解到实际运用——获取vuex中的全局状态state getters 知识回调(不懂就看这儿!)场景复现项目实战vuex定义一个store实例在store中定义数据在组件中获取值vuex的计算属性通过getters获取全局状态state和getters获取全局状态的区别 知识…

【边缘设备】yolov5训练与rknn模型导出并在RK3588部署(亲测有效)

保姆级教程,看这一篇就够用了 环境准备 将宿主机和开发板接入同一个局域网,方便开发。 宿主机 PC电脑,x86_64, 带显卡, 配置不表, 能训练和开发即可。系统: ubuntu 22.04 LTS 版本( ubuntu 18.04 LTS 以上)自带的远程软件&…

从 PC 解锁 Android 手机的 6 种有效方法

在这个数字时代,手机已成为我们生活的重要组成部分。我们将它们用于各种用途,从跟踪我们的工作和社交日程到与亲人交流。 然而,有时我们的手机会成为令人沮丧的源头,尤其是当我们不小心将自己拒之门外时。但是您知道可以使用计算…

正则表达式匹配密码(字符串)

正则表达式匹配密码(字符串) 验证字符串至少由4种字符组成且长度大于等于8。 实例如下: import java.util.regex.Matcher; import java.util.regex.Pattern;public class Main {public static void main(String[] args) {String input &quo…

搭建Stable Diffusion WebUI详细过程

文章目录 1、环境搭建1.1、GPU服务器选择1.2、配置服务器环境 2、源码和模型下载3、安装依赖库文件4、运行项目5、视频教程 1、环境搭建 为了方便,这里直接选择Vultr提供的已安装Anaconda的Ubuntu 22.04系统。 如果你自己电脑有足够的显存,你也可以在自…