dependency和devDependency的区别

package-a

--- package-b (dependency)

--- | --- package-c (devDependency)

--- | --- package-cc (dependency)

--- package-d (devDependency)

--- | --- package-e (dependency)

npm install后,package-b、package-d、package-cc,package-e 会被安装,其它不会被安装。

npm install --production后,package-b、package-cc 会被安装。其它不会被安装。

> npm install react --save  // 做为 dependencies 安装
> npm install eslint --save-dev // 做为 devDependencies 安装

peerDependencies

package-a

--- package-b (dependency)

--- | --- package-c (dependency)

--- package-c (dependency)

在npm1和npm2中,npm install后,会有两次package-c的下载和安装。

package-b的package.json,设定peerDependencies为package-c后,会只下载和安装一次package-c。

在npm3中,依赖树扁平化,peerDependencies中声明的依赖不会被npm自动安装,而是输出warning日志。

optionalDependencies

npm install optionalDependencies指定的包失败后,依然能继续安装。

bundleDependencies(bundledDependencies)

一个包含了包名称的数组,这些包会在发布一起被打包

Bundled dependencies 应该在您的项目中。该功能基本上与正常的dependencies相同。当运行yarn pack时,它们也会被打包

正常的dependencies通常从npm的registry中安装。Bundled Dependencies在正常的dependencies不足的情况下很有用:

当您想重新使用不是来自npm registry或者被修改的第三方库时

当您想重新使用您自己的项目作为模块时

当您想要分发一些文件和您的模块时

实用策略

  1. 升级到NPM3,保持依赖树扁平化
  2. 固定模块版本号,不使用~,^,<,>这些不确定的版本标识符
  3. 不用peerDependencies

参考链接:

http://javascript.ruanyifeng.com/nodejs/packagejson.html

https://github.com/SamHwang1990/blog/issues/7

http://yarnpkg.top/DependencyType.html

https://segmentfault.com/a/1190000008398819

nodejs的dependency.md的更多相关文章

  1. GiBbook实用配置以及插件

    GitBook可以在您的计算机上用于构建本地书籍,,可以本地预览 安装gitbook 环境要求: 安装GitBook,您的系统需要安装NodeJS(推荐v4.0.0及以上版本) NodeJS下载地址 ...

  2. 为 github markdown 文件生成目录(toc)

    业务需要 在编写 github 项目时,有时候会编写各种 README.md 等 markdown 文件,但是 github 默认是没有目录的. 于是就自己写了一个小工具. markdown-toc ...

  3. tars环境部署

    author: headsen  chen date: 2018-10-18 12:35:40 注意:依据Git上的tars搭建步骤整理而来 参考: https://max.book118.com/h ...

  4. 20121124.Nodejs创建HTTP程序.md

    ####1.源代码: var http=require('http');//读取http模块    http.createServer(function(req,res){//创建一个服务,接受一个回 ...

  5. Ubuntu安装新版本nodejs的5种姿势

    引言: 写这篇文章之前,关于ubuntu14.04(Trusty)默认安装的NodeJS版本是0.10.25百思不解(什么鬼,哪一年的NodeJS) 写这篇文章之时,NodeJS的LTS版本号都已经1 ...

  6. Nodejs介绍及npm工具使用

    一.Nodejs介绍 Nodejs英文网:https://nodejs.org/en/ Nodejs中文网:http://nodejs.cn/ Node.js 是一个基于 Chrome V8 引擎的 ...

  7. nodeJS学习(2)--- NPM 使用介绍

    前言:express 推出了4.X,自己尝试了一下,出现了各种问题.结果查看了各种文档和问题,现在在这个给大家分享下4.X版本的安装. NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具, ...

  8. NodeJS 安装cnpm命令行工具

    在安装之前,请确保已安装Git和NodeJS. cmd机内命令窗口,输入以下命令: git config --system http.sslcainfo /bin/curl-ca-bundle.crt ...

  9. NPM 使用介绍(包管理工具,解决NodeJS代码部署上的很多问题)

    引用地址:http://www.runoob.com/nodejs/nodejs-npm.html NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问 ...

随机推荐

  1. linux centos 如何设置swap大小?

    linux centos 如何设置swap大小? swap的值都是安装系统的时候设置好的,一般设置为内存的两倍大小.使用过程中发现swap值过小只能添加.用free -m 命令查看当前swap大小 使 ...

  2. 第一周java测验感想

     在正式开学的第一周,建民老师就给我们来了一个下马威.我本身的编程基础比较差,不知道怎么去想,怎么去一步步的去完成这么一个工程.所以我在星期四的下午十分的痛苦…因为不知道怎么搞嘛.尽管在暑假的时候看了 ...

  3. java加载配置文件信息

    #基金数据存放根目录fund_save_root_path=E:/fundCrawling #龙虎榜数据存放根目录long_hu_root_path=E:/longHuCrawling #巨潮数据存放 ...

  4. OpenStack平台上,windows云主机可以ping通百度但是无法打开网页,部分其它网页可以打开

    问题描述: 在OpenStack平台上的64位Windows7虚拟机,可以ping通百度,但是却无法打开百度网页. 于是,笔者又对其它网址进行的测试,发现淘宝.京东.携程部分网页可以打开,而新浪等等网 ...

  5. 双屏互动h5

    情侣H5:https://www.25xt.com/allcode/10837.html 双屏互动:https://www.digitaling.com/articles/18180.html

  6. 合并两个JsonArray

    //合并两个JSONArray public static String joinJSONArray(JSONArray mData, JSONArray array) { StringBuffer ...

  7. java.lang.IllegalStateException: Failed to check the status of the service

    java.lang.IllegalStateException: Failed to check the status of the service com.pinyougou.sellergoods ...

  8. mycat水平分表

    和垂直分库不同,水平分表,是将那些io频繁,且数据量大的表进行水平切分. 基本的配置和垂直分库一样,我们需要改的就是我们的 schema.xml和rule.xml文件配置(server.xml不用做任 ...

  9. MySQL5.7 忘记root密码,怎么破?

    MySQL5.7 忘记root密码,怎么破? 关服 # kill $mysql_pid 免密启动 # /usr/local/mysql57/bin/mysqld_safe --defaults-fil ...

  10. c#简单案例--单位转换器

    经过几天学习,写出了一个简单的winform应用程序,贴出源码,以备不时之需. 软件启动后的界面如下图所示: 如图,该程序由6个label.8个comboBox.8个textBox和4个button组 ...