备注:<=> 意为等价于;

1、npm install <=> npm i

--save   <=> -S

--save-dev  <=> -D

npm run start <=> npm start  // 对应"scripts"里的"start"命令

少敲几下键盘,何乐而不为

2、npm i --save-dev  <packname>

工程构建(开发时、“打包”时)依赖 ;例:xxx-cli , less-loader , babel-loader...

在 package.json 文件里面体现出来的区别就是,使用 --save-dev 安装的插件,被写入到 devDependencies 对象里面去,而使用 --save 安装的插件,则被写入到 dependencies 对象里面去。

3、npm i --save <packname>

项目(运行时、发布到生产环境时)依赖;例:antd , element,react...

那 package.json 文件里面的 devDependencies和dependencies对象有什么区别呢?

devDependencies是对开发环境所需依赖的声明(构建工具,测试工具) ,比如:babel,webpack,都放到当前目录。

而 dependencies是对生产环境所需依赖的声明(开发应用中使用的框架,库) ,比如:jq,react,vue都需要放到这里面。

4、对应关系如下(至于我们啥时候用--save、啥时候用--save-dev 感觉是个规范问题,用反了项目一样可以跑起来(对于安装依赖正确时),但会给其他看你项目的人带来误解、可能会导致一些bug的出现,还有一些配置的错乱等)

总结一下:

总体比较:

npm install module:

会把module包安装到node_modules目录中;

不会修改package.json;

之后运行npm install 命令时,不会自动安装module包。

npm install module --save

会把module包安装到node_modules目录汇总;

会修改package.json,将模块名和版本号添加到dependencies部分;

之后运行npm install 命令时,会自动安装module包;

之后运行npm install --production或者注明NODE_ENV变量值为production时,会自动安装 module到node_modules目录中,即是在线上环境运行时会将包安装。

npm install module --save-dev

会把module包安装到node_modules目录汇总;

会修改package.json,将模块名和版本号添加到devDependencies部分;

之后运行npm install 命令时,会自动安装module包;

之后运行npm install --production或者注明NODE_ENV变量值为production时,不会自动安装msbuild到node_modules目录中,即是在线上环境并不会进行安装。

--save和--save-dev可以省掉我们手动修改package.json文件的步骤。我们使用的一些打包工具、非项目必须依赖的都放在devDependencies中。

如何判断?

一种是你在使用当前模块的时候,当前模块在github上会告诉你,它需要使用哪种方式安装。

另一种就是你靠自己判断如何安装在哪个里面。

如何使用?

如果我们转移一个项目或者下载了一个别人的项目时,是不会带有node_modules目录中的模块的,所以我们拿到项目以后,是需要在根目录进行npm install进行项目安装的,这种默认是生产环境和开发环境都会安装。

如果带上后缀npm install --production则只会安装生产环境的所有模块,而无视开发环境的相关模块。

我们可以通过分开生产环境和开发环境相关的模块,还可以减少安装时间。达到节约时间的目的。

npm install --save 、--save-dev 、-D、-S 的区别的更多相关文章

  1. node-sass:npm install node-sass --save

    从git上拉下来的项目,要先安装依赖, 再运行. 缺少node-sass:npm install node-sass --save

  2. npm install 插件 --save与 --save -dev的区别

    npm i 插件   ,会把插件安装到node_modules目录中,不会修改package.json, npm i 插件 --save  ,项目发布上线之后还会依赖用到的插件,没有这些插件,项目不能 ...

  3. npm全局安装和本地安装和本地开发安装(npm install --g/--save/--save-dev)

    详细说明参考:http://www.cnblogs.com/PeunZhang/p/5629329.html 我个人理解: 1.全局安装(npm install -g)是为了用命令行,比如在windo ...

  4. npm install xxx --save-dev 与npm install xxx --save 的区别

    正常情况下: 当你为你的模块安装一个依赖模块时 1.你得先安装他们(在模块根目录下npm install module-name) 2.连同版本号手动将他们添加到模块配置文件package.json中 ...

  5. [转] npm install 本地安装与全局安装的区别

    npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install grunt # 本地安装 npm install -g  ...

  6. nodejs npm install全局安装和本地安装的区别

    npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如:代码如下:复制代码npm install # 本地安装npm install - ...

  7. npm install、npm install --save、npm install --save --dev、npm install -S、npm install -D的区别

    npm install X: 会把X包安装到node_modules目录中 不会修改package.json 之后运行npm install命令时,不会自动安装X npm install X –sav ...

  8. npm install 时--save-dev和--save的区别

    package.json中两个字段含义简介 一直在使用npm包管理器,对于npm install module --save-dev 和 npm install module --save这两个的区别 ...

  9. NPM install -save 和 -save-dev 傻傻分不清

    本文原文地址:https://www.limitcode.com/detail/59a15b1a69e95702e0780249.html 回顾 npm install 命令 最近在写Node程序的时 ...

随机推荐

  1. angular.identity()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Android第四次作业

    一.团队成员 成员1:刘宇莹 学号:1600802122 班级:计算机164 博客链接:刘宇莹 成员2:孟鑫菲 学号:1600802092 班级:计算机163 博客链接:孟鑫菲 二.团队项目apk 拍 ...

  3. 【管理篇】用户故事STORY

    项目管理中,常常听说story,用户故事 “一开始就做对系统”纯属神话,反之,我们应该去实现今天的用户故事,然后重构,明天再拓展系统.实现新的用户故事.这就是迭代和增量敏捷的精粹所在.

  4. 黑盒测试实践——day03

    一.任务进展情况 目前基本确定选取的测试工具是Testwriter,测试的web系统还在待定状态,小组成员都在网上搜集相关知识,学习相关的测试技术.        二.存在的问题 Testwriter ...

  5. C#基础概念总结

    C#基础概念总结 1..NET Framework概念 2. C#的含义: 3.什么是面向对象编程: 4.Visual Studio开发工具: 5..NET程序运行的机制: 1..Net Framew ...

  6. netbeans10支持php7.1-7.3

    2019年1月16日10:56:49 官方发布时间2018年12月27日 PHP支持 NetBeans 10的所有PHP支持都是由我们的NetBeans提交者 Junichi Yamamoto提供的. ...

  7. OUTLOOK2019 解决 无法验证您连接到的服务器使用的安全证书

    在配置好Outlook后,每次打开Outlook,都会弹框提醒“无法验证您连接到的服务器使用的安全证书”,网上搜的很多办法都无法解决,最后在微软的官方解答中找到了解决方案,分享给大家!   打开Out ...

  8. linux CentOS 安装 nginx

    官方网址:http://nginx.org/en/download.html 一.安装基础组件 yum install gcc-c++ yum install pcre yum install pcr ...

  9. 海思编译链编译出现__aeabi_unwind_cpp_pr1重定义怎么回事

    1.用arm-hisiv100nptl-linux-gcc编译代码,结果发现报错,__aeabi_unwind_cpp_pr1重定义,在librt.a先定义,使用的海思芯片是hi3520d. 2.本来 ...

  10. Linux_磁盘分布_以及分区

    运用 Xshell  工具链接到你的服务器 1.     Fdisk -l    这是查看磁盘挂载列表情况 2.      Fdisk /dev/vdc   这是分区这个磁盘   m    是查看信息 ...