在使用 npm install moduleName
命令的时候常会添加 --save-dev
、 -d
这些指令,有时候我也会糊涂,详细请看 npm文档
-
npm install moduleName
将模块安装到项目 node_modules 下面,不会将模块依赖写入到 devDependencies 或 dependencies 节点,同时运行npm install
初始化项目时不会下载模块 -
npm install moduleName --global
也可以简写-g
,将全局安装模块,不会在项目 node_modules 目录中保存模块包,也不会将模块依赖写入 devDependencies 或 dependencies节点,同时运行npm install
命令初始化项目时不会下载模块 -
npm install moduleName --save-dev
也可以简写 -d,将模块安装到项目 node_modules 目录下,也会将模块依赖写入 dependencies 节点,同时运行npm install
初始化项目时,会将模块下载到项目目录下。
运行npm install --production
或者注明 NODE_ENV 变量值为 production时,会 自动下载模块到 node_modules 目录中。 -
npm install moduleName --save
也可以简写 -s,将模块安装到项目 node_modules 目录下,也会将模块依赖写入 devDependencies 节点,同时运行npm install
初始化项目时会将模块下载到项目目录下。
跟3中不同的是,运行npm install --production
或者 NODE_ENV 变量设置为 production 时,不会 自动下载模块到 node_modules 目录的。
怎么说呢?
dependencies 节点是项目运行时的依赖,当程序上线后仍然需要的依赖,比如 express 这些,这时需要 --save
参数
而 devDependencies 节点是开发依赖,当我们在开发时会用到这些依赖,当项目部署了就不需要了,如 webpack、gulp、babel这些, 这时需要 --save-dev
参数
在 package.json 文件中可以查看 dependencies 和 devDependencies 中安装了哪些依赖
{
"dependencies":{
"express": "^4.15.2"
},
"devDependencies":{
"webpack": "^4.38.0"
}
}