npm依赖管理:冗余,依赖树
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/
npm依赖管理:冗余,依赖树的更多相关文章
- Android使用gradle依赖管理、依赖冲突终极解决方案(转)
Android使用gradle依赖管理.依赖冲突终极解决方案在Android开发中,相信遇到关于版本依赖的问题的同学有不少.虽然Android Studio一般都会自动帮我们去重,但是有时候去重失败了 ...
- 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念
1 maven概念模型 2 maven的生命周期,项目构建过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg== ...
- maven依赖管理
maven依赖管理 1.依赖范围 (依赖相当于java中的import 是否需要导入别的jar包) 使用控制依赖与三种classpath(编译期,测试时期,运行时期)的关系 complie ...
- Spring mvc 4系列教程(二)——依赖管理(Dependency Management)和命名规范(Naming Conventions)
依赖管理(Dependency Management)和命名规范(Naming Conventions) 依赖管理和依赖注入(dependency injection)是有区别的.为了将Spring的 ...
- 实用maven笔记二-信息&依赖管理
目前我经历的公司的主要项目管理工具都是maven,maven除了是一个实用的构建工具外,也是一个功能强大的项目管理工具.其管理功能分为信息管理和依赖管理.通过pom.xml文件实现. 信息管理 信息管 ...
- 谈谈npm依赖管理
引言 现在的前端开发几乎都离不开nodejs的包管理器npm,比如前端在搭建本地开发服务以及打包编译前端代码等都会用到.在前端开发过程中,经常用到npm install来安装所需的依赖,至于其中的技术 ...
- nodejs Yarn替代npm的包管理——快速、安全、可靠性高的依赖管理
Yarn能帮你解决的五件事 转自: http://www.qingpingshan.com/jb/javascript/185590.html 长话短说(TL;DR):在 JavaScript 领域有 ...
- 对Node.js 中的依赖管理的研究-----------------引用
nodejs依赖: dependencies devDependencies peerDependencies bundledDependencies optionalDependenc ...
- 用CocoaPods做iOS程序的依赖管理(转摘)
转摘自:http://blog.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/ 文档更新说明 2012-1 ...
随机推荐
- UITableView学习之辨析两个方法:⓵dequeueReusableCellWithIdentifier与⓶dequeueReusableCellWithIdentifier:forIndexPath:
使用storyboard显示UITableView时,如果不修改系统默认生成的tableView:cellForRowAtIndexPath:方法中的代码,必须为UITableViewCell注册(填 ...
- winds dlib人脸检测与识别库
在人脸检测与人脸识别库中dlib库所谓是非常好的了.检测效果非常ok,下面我们来了解一下这个神奇的库吧! 第一步我们首先学会安装:dlib ,winds+pytho3.6.5 Windows不支持p ...
- [FZU2254]英语考试
在过三个礼拜,YellowStar有一场专业英语考试,因此它必须着手开始复习. 这天,YellowStar准备了n个需要背的单词,每个单词的长度均为m. YellowStar准备采用联想记忆法来背诵这 ...
- JavaScript设置获取和设置属性的方法
这篇文章主要介绍了JavaScript设置获取和设置属性的方法,学会使用getAttribute.setAttribute的用法,需要的朋友可以参考下 getAttribute 该方法用来获取元素 ...
- 两个kernel.org国内镜像
两个kernel.org国内镜像 https://mirror.tuna.tsinghua.edu.cn/kernel/v4.x/testing/ http://mirror.bjtu.edu.cn/ ...
- 第三方库SDWebImage的原理
关于SDWebImage,其实是不用懂原理的,只是有一些面试官会问,分享给正在找工作的朋友们: 不多说直接上图: 另外..... 我的愿望是....... 世界和平.........
- springmvc对于前台date类型注意点
springmvc,可以自动将数据注入到: “name”值相同,便注入,比如String Integer 还有我们自定义的bean,比如User. 但是date类型的数据,如果前台传的是用" ...
- JavaScript的数组详解
#转载请留言联系 创建数组 1.通过new Array()进行创建 var arr1=new Array(); 2.通过中括号进行创建 var arr2=[]; 计算数组的长度 var arr3=[' ...
- 关于android studio3.0版本后引入资源问题error: failed linking file resources
最近更新阿里短视频的SDK,导入demo项目时,发现两个问题: 1.频繁报错AAPT2 error: file not found.以为直接Sync重新编译就可以,但是仍旧频繁提醒引入资源错误. 查找 ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(8)-粒子系统
没有美工的程序员,能够依赖的还有粒子系统. 这一章我们将使用libGDX的粒子系统线性插值以及其他的方法来增加一些特效. 你也可以使用自己编辑的粒子效果,比如这个粒子文件dust:http://fil ...

