npm的依赖树查询:原理都是查询文件夹node_modules的结构。比如mac的node_modules位置在/usr/local/lib下。具体项目的node_modules位置位于项目根目录下。

1、查看npmjs上某个插件的依赖情况

2、查看某个项目的插件依赖情况

3、查看本地计算机上全局安装的插件依赖情况

4、

查看npmjs网站上的包的依赖,如下

可以使用npm-remote-ls。全局安装:

npm install -g npm-remote-ls

查看插件bower的依赖关系:

npm-remote-ls bower

也可以使用网站:http://npm.anvaka.com/#/view/2d/td-ui查看

查看本地某个项目的依赖树:

进入本地项目下,然后使用命令npm ll ,只会打印本地项目安装的依赖,不会打印未安装的依赖,也不会打印全局安装的依赖。也可以使用命令npm list/ls;  npm list --depth=1设置树的深度。路径显式的是

查看全局安装的所有插件依赖树情况:npm ls -g --depth=1 。全局的插件安装默认目录是:/usr/local/lib

查看全局安装的某个插件依赖情况:npm ls  -g --depth=1 。全局的插件安装默认目录是:/usr/local/lib

关于依赖冗余:目前npm6是版本6.3.0

有文章称,当项目依赖一个插件的多个版本时,会全部引进进来,然后分布放在依赖它们的项目下的node_modules下面。如果多次依赖的版本相同时,则放在顶级的node_modules下面。

  npm3在安装包时会采用扁平化处理,包以及包依赖的其他模块将会以同层级的方式安装在包使用者的node_modules下 ,如果版本有冲突,才会采用npm2的嵌套方式安装在各个包下。

  在npm3下,peerDependencies下模块不会自动安装,需要模块使用者在本地目录手动安装,如果没安装会发出警告

  peerDependencies的作用是表面某个插件必须依赖另一个插件的某个版本。

  npm3把所有依赖模块路径拍扁了(工程目录下的node_modules出现了很多package.json中没有声明的模块),解决了windows下路径名过长的问题,更使得公共依赖被充分共享。但如果多个模块依赖了同一个模块的不同版本,后安装的模块,为了不和别人冲突,就只能将这个依赖安装在自己的node_modules

http://cloudstone.xin/2016/10/23/npm-install%E9%97%AE%E9%A2%98%E4%B9%8B%E4%BE%9D%E8%B5%96%E5%86%97%E4%BD%99/

 

转载于:https://www.cnblogs.com/shengulong/p/9463435.html

npm依赖管理:冗余,依赖树相关推荐

  1. 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念

     1 maven概念模型 2 maven的生命周期,项目构建过程 Maven生命周期就是为了对所有的构建过程进行抽象和统一 包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤 Mave ...

  2. 配置所需要的依赖_Maven依赖管理之依赖传递

    1 传递依赖 2.1 什么是传递依赖 当A 依赖B.B依赖C,在A中导入B后会自动导入C,C是A的传递依赖,如果C依赖D则D也可能是A的传递依赖. 演示: web中添加struts-spring的ja ...

  3. maven依赖管理_依赖管理和Maven

    maven依赖管理 Maven伟大而成熟. 几乎所有事物都总有解决方案. 您可能在组织项目上遇到的主要情况是依赖管理. 而不是每个项目都具有自己的依赖关系,您需要一种集中的方式来继承那些依赖关系. 在 ...

  4. gradle依赖管理_依赖管理

    gradle依赖管理 Why Bother 何必呢 Writing software is a very expensive process, and most systems we interact ...

  5. maven依赖管理(依赖配置、依赖传递、依赖冲突、依赖范围)

    文章目录 基本说明 依赖配置 依赖传递 直接依赖 间接依赖 依赖冲突 路径优先 声明优先 特殊依赖 可选依赖 排除依赖 可选依赖和排除依赖区别 依赖范围 总结 基本说明 这篇文章会介绍在maven中的 ...

  6. Maven 依赖管理与依赖标签

    原文链接 1.概述 在本教程中,我们将回顾两个重要的Maven标签--dependencyManagement 和 dependencies. 这些特性对于多模块项目特别有用. 我们将回顾这两个标签的 ...

  7. 【Android Gradle 插件】Android 依赖管理 ④ ( 常用依赖配置分析 | implementation 依赖作用 | api 依赖作用 | compileOnly 依赖作用 )

    文章目录 一.compile 依赖作用 二.implementation 依赖作用 三.api 依赖作用 四.compileOnly 依赖作用 五.annotationProcessor 依赖作用 六 ...

  8. cnpm能用npm install吗_npm依赖版本变动引发的惨案

    [toc] 来了新同事,拉同一个项目到本地安装依赖之后跑不起来,但是其他三台电脑运行着都没问题.接下来就是逐步定位问题,首先排除了代码问题,因为最新代码在其他同事不同系统的电脑上都没正常运行,进过百度 ...

  9. 关于 C++ 依赖管理

    有经验的程序员,不论所用何种语言,对代码依赖都不会陌生.代码无论是依赖于内部依赖关系,还是依赖于外部库或框架,通常都不会孤立运行.代码的重复使用,亦即使用现有代码的做法,是提升开发效率的重要工具.不过 ...

  10. Gradle项目依赖管理

    作者:黄少存,叩丁狼高级讲师.本文为原创文章,转载请注明出处.  上一篇咱们讲解了 Gradle 构建项目的生命周期,这一篇咱们来看下 Gradle 的另一个重要的知识点,就是依赖管理,那为什么需要依 ...

最新文章

  1. 网络营销专员浅析在网络营销中网站关键词对网站流量获取有何影响?
  2. python与人工智能编程-人工智能与Python关系浅谈
  3. 系统设计说明书案例_案例 | 太阳能+热泵枸杞烘干系统设计及经济性分析
  4. 如何用DELPHI区分彩色图和黑白图(多色与单色)??
  5. 从头到脚说单测——谈有效的单元测试
  6. rails开发随手记-0
  7. 前端学习(3084):vue+element今日头条管理-表单数据绑定2
  8. 人这辈子没法做太多的事情
  9. mysql 插入优化_MySQL批量SQL插入性能优化
  10. Adobe Acrobat Pro DC二次激活失败的解决途径
  11. 状态码301和302的区别?
  12. android如何获取电视的存储空间,Android TV (二)(处理电视硬件)
  13. JavaScript使用技巧(2)
  14. 【转】Data truncation: Truncated incorrect DOUBLE value:Mysql Update时
  15. python进阶(一)关联sql的算法操作
  16. 安卓快速排序与冒泡排序
  17. python检测刀具_科研一角|Python语言在人工智能加工中心机器人方面的应用
  18. Flume avro client和hdfs sink 完成自定义目录文件收集
  19. 腾讯实习生面试-笔试
  20. php eclipse aptana,eclipse aptana插件自动提示

热门文章

  1. 4种软件架构,看看你属于哪个层次!
  2. 每天都在和Maven打交道?你真的了解它吗?
  3. MySQL数据库开发的三十六条军规
  4. 成为一名优秀架构师有标准吗?这12点或许能带给你一些启发
  5. 思科上海被裁员人均赔偿100万?官方回应:大裁员消息不实,中国业务发展不顺为真...
  6. 困难之下见证良心公司!!
  7. 尽点力,虽然也不一定有用
  8. Google 放话:要教会我家宝宝开发Android App!
  9. Python os.system()调用.sh脚本
  10. 微信开发,调用js-SDK接口