npm install 、npm install --save 和 npm install --save-dev的区别介绍

 更新时间:2023年04月25日 15:39:40   作者:潘建南  
这篇文章主要介绍了npm install 、npm install --save 和 npm install --save-dev的区别介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

相同点

三者都会本地安装包到项目的node_modules目录中

区别

区别在于对项目package.json的修改,npm install不会修改package.json,而后两者会将依赖添加进package.json,后两者的区别请看下文循序渐进。

指定依赖包

指定包取决于你的项目,你需要在package.json 文件中列出你需要使用的包,有两种包可以选择:

  • “dependencies”: 这些包都是你的应用程序在生产环境中所需要的。
  • “devDepedencies”:这些包只是在开发和测试中需要的。

手动编辑package.json文件

你可以手动编辑你的package.json。你需要在包的dependencies 对象中创建一个属性用来指出你需要添加的依赖。 
例如下面的项目中,在主要生产环境中使用包my_dep的版本1.0.0,而在在开发环境中使用包 my_test_framework 的3.1.0版本。

{
  "name": "my_package",
  "version": "1.0.0",
  "dependencies": {
    "my_dep": "^1.0.0"
  },
  "devDependencies" : {
    "my_test_framework": "^3.1.0"
  }
}

--save 和--save-dev下载标签

  • 他们表面上的区别是--save 会把依赖包名称添加到 package.json 文件 dependencies 键下,--save-dev 则添加到 package.json 文件 devDependencies 键下.
  • dependencies是运行时依赖,devDependencies是开发时的依赖。即devDependencies 下列出的模块,是我们开发时用的

比如 我们安装 js的压缩包gulp-uglify 时,我们采用的是 “npm install gulp-uglify --save-dev”命令安装,因为我们在发布后用不到它,而只是在我们开发才用到它。dependencies 下的模块,则是我们发布后还需要依赖的模块,譬如像jQuery库或者Angular框架类似的,我们在开发完后后肯定还要依赖它们,否则就运行不了。

补充:正常使用npm install时,会下载dependencies和devDependencies中的模块,当使用npm install --production或者注明NODE_ENV变量值为production时,只会下载dependencies中的模块。

到此这篇关于npm install 、npm install --save 和 npm install --save-dev的区别的文章就介绍到这了,更多相关npm install --save和npm install --save-dev区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序实现自定义导航栏

    微信小程序实现自定义导航栏

    这篇文章主要为大家详细介绍了微信小程序实现自定义导航栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 在Iframe中获取父窗口中表单的值(示例代码)

    在Iframe中获取父窗口中表单的值(示例代码)

    这篇文章主要介绍了在Iframe中获取父窗口中表单的值(示例代码)。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • js canvas实现擦除效果示例代码

    js canvas实现擦除效果示例代码

    擦除效果在我们日常开发中也是时有见到的,通过擦除效果大大加强了与用户的交互性,所以下面这篇文章主要给大家介绍了利用js和canvas实现擦除效果的相关资料,文中给出了详细的介绍和示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • JavaScript This指向问题详解

    JavaScript This指向问题详解

    这篇文章主要介绍了JavaScript This指向问题详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • JavaScript ECMA-262-3 深入解析.第三章.this

    JavaScript ECMA-262-3 深入解析.第三章.this

    在这篇文章里,我们将讨论跟执行上下文直接相关的更多细节。讨论的主题就是this关键字
    2011-09-09
  • javascript实现最长公共子序列实例代码

    javascript实现最长公共子序列实例代码

    最长公共子序列(longest common sequence)和最长公共子串(longest common substring)不是一回事儿,下面这篇文章主要给大家介绍了关于javascript实现最长公共子序列的相关资料,需要的朋友可以参考下。
    2018-02-02
  • bootstrap的3级菜单样式,支持母版页保留打开状态实现方法

    bootstrap的3级菜单样式,支持母版页保留打开状态实现方法

    下面小编就为大家带来一篇bootstrap的3级菜单样式,支持母版页保留打开状态实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • c#程序员对TypeScript的认识过程

    c#程序员对TypeScript的认识过程

    本文向大家详细展示了从C#程序员的视角学习TypeScript的过程,主要是针对这两种语言的异同进行了简单的对比学习,希望对大家能够有所帮助。
    2015-06-06
  • JavaScript中的集合及效率

    JavaScript中的集合及效率

    由于 JavaScript 的语言特性,我们可以向通用对象动态添加和删除属性。所以 Object 也可以看成是 JS 的一种特殊的集合。
    2010-01-01
  • JavaScript实现复制文章自动添加版权

    JavaScript实现复制文章自动添加版权

    自己辛辛苦苦写的文章,轻易就被别人复制-粘贴去了,是不是很伤心呢?小编今天给大家整理了两个方法,让别人复制自己的文章时,自动在文章的结尾添加自己的版权信息。
    2016-08-08

最新评论