npm install 常用命令
# 安装模块到项目目录
npm install moduleName
# -g 意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。
npm install -g moduleName
# --save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。
npm install --save moduleName
# --save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。
npm install --save-dev moduleName
那么问题来了,在项目中我们应该使用四个命令中的哪个呢?下面对这四个命令进行了对比:
npm install moduleName 命令
1. 安装模块到项目 node_modules 目录下。
2. 不会将模块依赖写入 devDependencies 或 dependencies 节点。
3. 运行 npm install 初始化项目时不会下载模块。
npm install -g moduleName 命令
1. 安装模块到全局,不会在项目 node_modules 目录中保存模块包。
2. 不会将模块依赖写入 devDependencies 或 dependencies 节点。
3. 运行 npm install 初始化项目时不会下载模块。
npm install --save moduleName 命令
1. 安装模块到项目 node_modules 目录下。
2. 会将模块依赖写入 dependencies 节点。
3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
4. 运行npm install --production 或者注明 NODE_ENV 变量值为 production 时,会自动下载模块到 node_modules 目录中。
npm install --save-dev moduleName 命令
1. 安装模块到项目 node_modules 目录下。
2. 会将模块依赖写入 devDependencies 节点。
3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
4. 运行npm install --production 或者注明 NODE_ENV 变量值为 production 时,不会自动下载模块到 node_modules 目录中。
总结
dependencies字段用于列出项目运行时必需的模块。当你将一个模块添加到dependencies时,意味着这个模块对于你的项目在生产环境下的正常运行是必不可少的。例如,如果你正在构建一个使用Express的Web服务器,那么Express应该被添加到dependencies中,所以我们应该使用 --save 的形式安装。
devDependencies 节点下的模块是我们在开发时需要用的,但在生产环境中并不需要。这些通常包括测试工具、构建工具、编译器、预处理器、代码风格检查工具等。比如项目中使用的 gulp ,压缩 css、js 的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 --save-dev 的形式安装。