install命令中的-g, -S, -D参数详细介绍
- 1. install命令中的-g, -S, -D参数
1. install命令中的-g, -S, -D参数
install
命令在不同的上下文中有不同的含义,例如在 Unix/Linux 系统中,install
是一个用来复制文件和设置属性的命令,然而,根据你的问题提法,这里似乎指的是在 Node.js 环境中使用的 npm install
或 yarn 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
都是大写
命令 | 简称 |
---|---|
install | i |
--save | -S |
--save-dev | -D |
--global | -g |
-
-g
(全局安装)- 当使用
npm install -g <package-name>
或yarn global add <package-name>
命令时,-g
参数用于全局安装一个包。这意味着这个包将被安装在系统的全局目录中,并且它的可执行文件(如果有的话)将被添加到系统的 PATH 中,从而可以从任何位置调用它。
- 当使用
-
-S
(也就是--save
的缩写)- 在早期的 npm 版本中(npm 5 之前),使用
npm install <package-name> -S
会将包添加到package.json
文件中的dependencies
部分。这是用于那些在应用运行时需要依赖的包。从 npm 5 开始,默认行为已经改变,现在即使不加-S
参数,安装的包也会自动被添加到package.json
的dependencies
中。
- 在早期的 npm 版本中(npm 5 之前),使用
-
-D
(也就是--save-dev
的缩写)- 使用
npm install <package-name> -D
或yarn add <package-name> --dev
命令时,-D
参数用于将包添加到package.json
文件中的devDependencies
部分。devDependencies
是指那些仅在开发过程中需要的包,例如编译工具、测试框架和代码压缩工具等。在生产环境部署应用时,通常不会安装devDependencies
。
- 使用
总结一下,-g
用于全局安装,-S
(通常已非必需)用于添加到 dependencies
,而 -D
用于添加到 devDependencies
。随着包管理器(特别是 npm)的发展,这些标志的默认行为可能已经发生了变化,但它们的基本含义保持一致。