npm install X:

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

npm install X –save:

  • 会把X包安装到node_modules目录中

  • 会在package.json的dependencies属性下添加X

  • 之后运行npm install命令时,会自动安装X到node_modules目录中

  • 之后运行npm install –production或者注明NODE_ENV变量值为production时,会自动安装msbuild到node_modules目录中

npm install X –save-dev:

  • 会把X包安装到node_modules目录中

  • 会在package.json的devDependencies属性下添加X

  • 之后运行npm install命令时,会自动安装X到node_modules目录中

  • 之后运行npm install –production或者注明NODE_ENV变量值为production时,不会自动安装X到node_modules目录中

npm install X –g:

  • 安装模块到全局,不会在项目node_modules目录中保存模块包。

  • 不会将模块依赖写入devDependencies或dependencies 节点。

  • 运行 npm install 初始化项目时不会下载模块。
  • npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置,具体查看方法是在终端输入npm config edit,在弹出的文档中找到; prefix=C:\node,就是了。

使用原则:

运行时需要用到的包使用–save,否则使用–save-dev。

主要区别

devDependencies中的包是在开发中用到的,而发布后是找不到,而dependencies中的包是开发和线上都需要用到的。

我们在卸载某个包的时候也可以根据上面说的添上–save或–save-dev 就会在package.json中删除相应的配置。

总结

devDependencies 节点下的模块是我们在开发时需要用的,你写 ES6 代码,需要babel转换成es5,转换完成后,我们只需要转换后的代码,上线的时候,直接把转换后的代码部署上线,不需要bebal了,上线了不需要,这就是devDependencies,所以我们可以使用 -save-dev 的形式安装。如果你用了 jQuery,由于发布之后还是依赖jQuery,所以是dependencies,所以我们应该使用 -save 的形式安装。

以上这些只是为了学习做的总结,有部分摘自大牛原话,本人只是为了学习方便做的笔记,如有侵权,联系必删,致敬大牛!

npm install、npm install --save与npm install --save-dev、npm install -g区别的更多相关文章

  1. npm使用过程中的一些错误解决办法及npm常用命令

    node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...

  2. 利用npm安装/删除/发布/更新/撤销发布包 --社会我npm哥,好用话不多

      一.什么是npm? npm是javascript的包管理工具,是前端模块化下的一个标志性产物 简单地地说,就是通过npm下载模块,复用已有的代码,提高工作效率   1.从社区的角度:把针对某一特定 ...

  3. 【转】npm使用过程中的一些错误解决办法及npm常用命令

    原文 node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外 ...

  4. npm使用过程中的一些错误解决办法及npm常用命令和技巧

    node,npm在前端开发流程中提供了非常完善的自动化工具链,但是同样由于其复杂性导致有很多奇奇怪怪的问题.本文将记录使用过程中出现的一些问题及其解决方法备案. 国内由于gfw问题,导致很多国外的网站 ...

  5. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  6. 一次执行两个npm "start": "concurrently 'npm:dev' 'npm:json-server'"

    用的这个程序 concurrently 说是再有异步的时候,&& 就不好使,而且&& 也不能执行npm 只能执行命令 官方地址:https://www.npmjs.co ...

  7. 修改npm包管理器的registry为淘宝镜像(npm.taobao.org)

    起因 安装了node,安装了npm之后,官方的源实在是 太慢了! 看了看淘宝的npm镜像, http://npm.taobao.org/  竟然说让我再下载一个cnpm,要不然就每次都得install ...

  8. 【npm】使用淘宝提供的镜像来加速npm

    国外的npm用着非常不稳定,时常一直就卡在安装的进度条上 淘宝提供了一个国内镜像,保障了安装网络环境的稳定,和源地址10分钟同步一次,没有被收录的包会自动切换到npm官方下载,并添加进镜像库. 地址: ...

  9. 修改npm包管理器的registry为淘宝镜像(npm.taobao.org)<转>

    起因 安装了node,安装了npm之后,官方的源实在是 太慢了! 看了看淘宝的npm镜像,  http://npm.taobao.org/ 竟然说让我再下载一个cnpm,要不然就每次都得install ...

随机推荐

  1. IPC之——信号量集(多个信号量)

    如果两个进程不仅需要同步,还要保证先后执行顺序,就要用两个信号量(互斥锁)来解决 //栅栏模型:实现以下框架中的四个子进程 所有进程做完任务后 在一起执行下一次  #include <stdio ...

  2. SLIQ/SPRINT

    SLIQ/SPRINT */--> SLIQ/SPRINT Before SLIQ, most classification alogrithms have the problem that t ...

  3. LeetCode No.70,71,72

    No.70 ClimbStairs 爬楼梯 题目 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. ...

  4. 限制IP每分钟访问10次

    转载:https://www.jianshu.com/p/d1326ab657ff IP请求限制,之前用过redis的set设置时间戳一分钟过期:也用过nginx的IP限流配置.前者,没法解决“用户在 ...

  5. Excel-DNA开发包:ExcelDna-0.34.6.zip下载

    Excel-DNA可以用VB.Net或C#开发Excel自定义函数.制作.xll格式的加载宏. 点此下载 ExcelDna-0.34.6.zip

  6. C语言占位符(待完善)

    %c 读入一个字符 %s 读入一个字符串,遇到空格制表符或者换行符时结束. %d 读入一个十进制整数 %x或者%X   读入一个十六进制整数(读出时,%x:小写,%X:大写) %o   读入一个八进制 ...

  7. Docker Dockerfile基本配置

    1.dockerfile介绍 Dockerfile是Docker用来构建镜像的文本文件,包含自定义的指令和格式.可以通过docker build命令从Dockerfile中构建镜像.这个过程与传统分布 ...

  8. 查看python版本和django版本

    python --version 在python shell中: import sys sys.version import django django.VERSION

  9. Java并发 - (无锁)篇6

    , 摘录自葛一鸣与郭超的 [Java高并发程序设计]. 本文主要介绍了死锁的概念与一些相关的基础类, 摘录自葛一鸣与郭超的 [Java高并发程序设计]. 无锁是一种乐观的策略, 它假设对资源的访问是没 ...

  10. js javascript 获取url,获得当前页面的url,静态html文件js读取url参数

    获得当前页面的url window.location.href 静态html文件js读取url参数 location.search; //获取url中"?"符后的字串 下边为转载的 ...