linux下fsevents模块引起的npm ls报错的解决方法
发布时间 - 2019-04-04 00:00:00 点击率:次本篇文章给大家带来的内容是关于linux下fsevents模块引起的npm ls报错的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
有个项目在mac下开发,安装包npm i,一切正常;把这个项目放到linux机器上,安装包npm i,报了一堆warning:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN 0403@1.0.0 No description
npm WARN 0403@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: abbrev@1.1.1 (node_modules/fsevents/node_modules/abbrev):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/abbrev' -> '/root/2019/0403/node_modules/fsevents/node_modules/.abbrev.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: ansi-regex@2.1.1 (node_modules/fsevents/node_modules/ansi-regex):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/ansi-regex' -> '/root/2019/0403/node_modules/fsevents/node_modules/.ansi-regex.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: aproba@1.2.0 (node_modules/fsevents/node_modules/aproba):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/aproba' -> '/root/2019/0403/node_modules/fsevents/node_modules/.aproba.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: balanced-match@1.0.0 (node_modules/fsevents/node_modules/balanced-match):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/balanced-match' -> '/root/2019/0403/node_modules/fsevents/node_modules/.balanced-match.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: chownr@1.1.1 (node_modules/fsevents/node_modules/chownr):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/chownr' -> '/root/2019/0403/node_modules/fsevents/node_modules/.chownr.DELETE'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: code-point-at@1.1.0 (node_modules/fsevents/node_modules/code-point-at):
npm WARN enoent SKIPPING OPTIONAL DEPENDENCY: ENOENT: no such file or directory, rename '/root/2019/0403/node_modules/fsevents/node_modules/code-point-at' -> '/root/2019/0403/node_modules/fsevents/node_modules/.code-point-at.DELETE'
...执行npm ls,有不少UNMET OPTIONAL DEPENDENCY的模块,最后还报了一堆错:
│ ├── define-property@2.0.2 deduped │ ├── extend-shallow@3.0.2 deduped │ ├── regex-not@1.0.2 deduped │ └─┬ safe-regex@1.1.0 │ └── ret@0.1.15 ├─┬ UNMET OPTIONAL DEPENDENCY fsevents@1.2.7 │ ├── nan@2.13.2 │ └─┬ UNMET OPTIONAL DEPENDENCY node-pre-gyp@0.10.3 │ ├── UNMET OPTIONAL DEPENDENCY detect-libc@1.0.3 │ ├─┬ UNMET DEPENDENCY mkdirp@0.5.1 │ │ └── UNMET DEPENDENCY minimist@0.0.8 │ ├─┬ UNMET OPTIONAL DEPENDENCY needle@2.2.4 │ │ ├─┬ UNMET OPTIONAL DEPENDENCY debug@2.6.9 │ │ │ └── UNMET OPTIONAL DEPENDENCY ms@2.0.0 │ │ ├─┬ UNMET OPTIONAL DEPENDENCY iconv-lite@0.4.24 │ │ │ └── UNMET OPTIONAL DEPENDENCY safer-buffer@2.1.2 │ │ └── UNMET OPTIONAL DEPENDENCY sax@1.2.4 │ ├─┬ UNMET OPTIONAL DEPENDENCY nopt@4.0.1 │ │ ├── UNMET OPTIONAL DEPENDENCY abbrev@1.1.1 │ │ └─┬ UNMET OPTIONAL DEPENDENCY osenv@0.1.5 │ │ ├── UNMET OPTIONAL DEPENDENCY os-homedir@1.0.2 │ │ └── UNMET OPTIONAL DEPENDENCY os-tmpdir@1.0.2 │ ├─┬ UNMET OPTIONAL DEPENDENCY npm-packlist@1.2.0 │ │ ├─┬ UNMET OPTIONAL DEPENDENCY ignore-walk@3.0.1 │ │ │ └─┬ UNMET DEPENDENCY minimatch@3.0.4 │ │ │ └─┬ UNMET DEPENDENCY brace-expansion@1.1.11 │ │ │ ├── UNMET DEPENDENCY balanced-match@1.0.0 │ │ │ └── UNMET DEPENDENCY concat-map@0.0.1 │ │ └── UNMET OPTIONAL DEPENDENCY npm-bundled@1.0.5 │ ├─┬ UNMET OPTIONAL DEPENDENCY npmlog@4.1.2 │ │ ├─┬ UNMET OPTIONAL DEPENDENCY are-we-there-yet@1.1.5 │ │ │ ├── UNMET OPTIONAL DEPENDENCY delegates@1.0.0 │ │ │ └─┬ UNMET OPTIONAL DEPENDENCY readable-stream@2.3.6 │ │ │ ├── UNMET OPTIONAL DEPENDENCY core-util-is@1.0.2 │ │ │ ├── UNMET DEPENDENCY inherits@2.0.3 │ │ │ ├── UNMET OPTIONAL DEPENDENCY isarray@1.0.0 │ │ │ ├── UNMET OPTIONAL DEPENDENCY process-nextick-args@2.0.0 │ │ │ ├── UNMET DEPENDENCY safe-buffer@5.1.2 │ │ │ ├─┬ UNMET OPTIONAL DEPENDENCY string_decoder@1.1.1 │ │ │ │ └── UNMET DEPENDENCY safe-buffer@5.1.2 │ │ │ └── UNMET OPTIONAL DEPENDENCY util-deprecate@1.0.2 │ │ ├── UNMET DEPENDENCY console-control-strings@1.1.0 │ │ ├─┬ UNMET OPTIONAL DEPENDENCY gauge@2.7.4 │ │ │ ├── UNMET OPTIONAL DEPENDENCY aproba@1.2.0 │ │ │ ├── UNMET DEPENDENCY console-control-strings@1.1.0 │ │ │ ├── UNMET OPTIONAL DEPENDENCY has-unicode@2.0.1 │ │ │ ├── UNMET OPTIONAL DEPENDENCY object-assign@4.1.1 │ │ │ ├── UNMET OPTIONAL DEPENDENCY signal-exit@3.0.2 │ │ │ ├─┬ UNMET DEPENDENCY string-width@1.0.2 │ │ │ │ ├── UNMET DEPENDENCY code-point-at@1.1.0 │ │ │ │ ├─┬ UNMET DEPENDENCY is-fullwidth-code-point@1.0.0 │ │ │ │ │ └── UNMET DEPENDENCY number-is-nan@1.0.1 │ │ │ │ └── UNMET DEPENDENCY strip-ansi@3.0.1 │ │ │ ├─┬ UNMET DEPENDENCY strip-ansi@3.0.1 │ │ │ │ └── UNMET DEPENDENCY ansi-regex@2.1.1 │ │ │ └─┬ UNMET OPTIONAL DEPENDENCY wide-align@1.1.3 │ │ │ └── UNMET DEPENDENCY string-width@1.0.2 │ │ └── UNMET OPTIONAL DEPENDENCY set-blocking@2.0.0 │ ├─┬ UNMET OPTIONAL DEPENDENCY rc@1.2.8 │ │ ├── UNMET OPTIONAL DEPENDENCY deep-extend@0.6.0 │ │ ├── UNMET OPTIONAL DEPENDENCY ini@1.3.5 │ │ ├── UNMET OPTIONAL DEPENDENCY minimist@1.2.0 │ │ └── UNMET OPTIONAL DEPENDENCY strip-json-comments@2.0.1 │ ├─┬ UNMET OPTIONAL DEPENDENCY rimraf@2.6.3 │ │ └─┬ UNMET OPTIONAL DEPENDENCY glob@7.1.3 │ │ ├── UNMET OPTIONAL DEPENDENCY fs.realpath@1.0.0 │ │ ├─┬ UNMET OPTIONAL DEPENDENCY inflight@1.0.6 │ │ │ ├── UNMET DEPENDENCY once@1.4.0 │ │ │ └── UNMET DEPENDENCY wrappy@1.0.2 │ │ ├── UNMET DEPENDENCY inherits@2.0.3 │ │ ├── UNMET DEPENDENCY minimatch@3.0.4 │ │ ├─┬ UNMET DEPENDENCY once@1.4.0 │ │ │ └── UNMET DEPENDENCY wrappy@1.0.2 │ │ └── UNMET OPTIONAL DEPENDENCY path-is-absolute@1.0.1 │ ├── UNMET OPTIONAL DEPENDENCY semver@5.6.0 │ └─┬ UNMET OPTIONAL DEPENDENCY tar@4.4.8 │ ├── UNMET OPTIONAL DEPENDENCY chownr@1.1.1 │ ├─┬ UNMET OPTIONAL DEPENDENCY fs-minipass@1.2.5 │ │ └── UNMET DEPENDENCY minipass@2.3.5 │ ├─┬ UNMET DEPENDENCY minipass@2.3.5 │ │ ├── UNMET DEPENDENCY safe-buffer@5.1.2 │ │ └── UNMET DEPENDENCY yallist@3.0.3 │ ├─┬ UNMET OPTIONAL DEPENDENCY minizlib@1.2.1 │ │ └── UNMET DEPENDENCY minipass@2.3.5 │ ├── UNMET DEPENDENCY mkdirp@0.5.1 │ ├── UNMET DEPENDENCY safe-buffer@5.1.2 │ └── UNMET DEPENDENCY yallist@3.0.3 ├─┬ glob-parent@3.1.0 │ ├─┬ is-glob@3.1.0 │ │ └── is-extglob@2.1.1 deduped │ └── path-dirname@1.0.2 ├── inherits@2.0.3 ├─┬ is-binary-path@1.0.1 │ └── binary-extensions@1.13.1 ├─┬ is-glob@4.0.1 │ └── is-extglob@2.1.1 ├── normalize-path@3.0.0 ├── path-is-absolute@1.0.1 ├─┬ readdirp@2.2.1 │ ├── graceful-fs@4.1.15 │ ├── micromatch@3.1.10 deduped │ └─┬ readable-stream@2.3.6 │ ├── core-util-is@1.0.2 │ ├── inherits@2.0.3 deduped │ ├── isarray@1.0.0 │ ├── process-nextick-args@2.0.0 │ ├── safe-buffer@5.1.2 │ ├─┬ string_decoder@1.1.1 │ │ └── safe-buffer@5.1.2 deduped │ └── util-deprecate@1.0.2 └── upath@1.1.2
npm ERR! missing: mkdirp@0.5.1, required by node-pre-gyp@0.10.3 npm ERR! missing: minimist@0.0.8, required by mkdirp@0.5.1 npm ERR! missing: minimatch@3.0.4, required by ignore-walk@3.0.1 npm ERR! missing: brace-expansion@1.1.11, required by minimatch@3.0.4 npm ERR! missing: balanced-match@1.0.0, required by brace-expansion@1.1.11 npm ERR! missing: concat-map@0.0.1, required by brace-expansion@1.1.11 npm ERR! missing: console-control-strings@1.1.0, required by npmlog@4.1.2 npm ERR! missing: inherits@2.0.3, required by readable-stream@2.3.6 npm ERR! missing: safe-buffer@5.1.2, required by readable-stream@2.3.6 npm ERR! missing: safe-buffer@5.1.2, required by string_decoder@1.1.1 npm ERR! missing: console-control-strings@1.1.0, required by gauge@2.7.4 npm ERR! missing: string-width@1.0.2, required by gauge@2.7.4 npm ERR! missing: strip-ansi@3.0.1, required by gauge@2.7.4 npm ERR! missing: code-point-at@1.1.0, required by string-width@1.0.2 npm ERR! missing: is-fullwidth-code-point@1.0.0, required by string-width@1.0.2 npm ERR! missing: strip-ansi@3.0.1, required by string-width@1.0.2 npm ERR! missing: number-is-nan@1.0.1, required by is-fullwidth-code-point@1.0.0 npm ERR! missing: ansi-regex@2.1.1, required by strip-ansi@3.0.1 npm ERR! missing: string-width@1.0.2, required by wide-align@1.1.3 npm ERR! missing: inherits@2.0.3, required by glob@7.1.3 npm ERR! missing: minimatch@3.0.4, required by glob@7.1.3 npm ERR! missing: once@1.4.0, required by glob@7.1.3 npm ERR! missing: once@1.4.0, required by inflight@1.0.6 npm ERR! missing: wrappy@1.0.2, required by inflight@1.0.6 npm ERR! missing: wrappy@1.0.2, required by once@1.4.0 npm ERR! missing: minipass@2.3.5, required by tar@4.4.8 npm ERR! missing: mkdirp@0.5.1, required by tar@4.4.8 npm ERR! missing: safe-buffer@5.1.2, required by tar@4.4.8 npm ERR! missing: yallist@3.0.3, required by tar@4.4.8 npm ERR! missing: minipass@2.3.5, required by fs-minipass@1.2.5 npm ERR! missing: safe-buffer@5.1.2, required by minipass@2.3.5 npm ERR! missing: yallist@3.0.3, required by minipass@2.3.5 npm ERR! missing: minipass@2.3.5, required by minizlib@1.2.1
仔细观察发现UNMET OPTIONAL DEPENDENCY的模块和npm ERR是同一批模块,也是安装时报warning的那些模块。
再仔细观察发现这些都是fsevents依赖的模块。
fsevents只能在macOS下安装,无法在linux系统安装。linux下会跳过fsevents模块,也不会安装fsevents依赖的模块。
这其实算是npm的一个bug,npm i时报Warn,npm ls又报Err,前后不一致,容易有误解。
目前无论用哪个版本的npm都会有这个问题,npm i --no-optional也不能解决这个问题。
这些报错不影响项目的正常运行,因为linux不需要fsevents。
如果不希望看到npm Err,可以用npm i -f强制安装,安装过程没有warn,安装完后npm ls看下:
└─┬ chokidar@2.1.5 └── fsevents@1.2.7
干净了,没有任何报错。
我的项目是chokidar这个模块依赖了fsevents,chokidar又是browser-sync、webpack等依赖的。
# javascript
# node.js
# centos
# linux
# npm
# webpack
# 堆
# macos
# bug
# 报错
# 报了
# 安装包
# 也不
# 会有
# 有个
# 又是
# 不需要
# 没有任何
# 可以用
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Laravel如何实现API版本控制_Laravel版本化API设计方案
中国移动官方网站首页入口 中国移动官网网页登录
Laravel如何生成URL和重定向?(路由助手函数)
怎么用AI帮你设计一套个性化的手机App图标?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Laravel如何处理和验证JSON类型的数据库字段
Laravel如何实现用户注册和登录?(Auth脚手架指南)
如何在IIS管理器中快速创建并配置网站?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
Laravel如何集成Inertia.js与Vue/React?(安装配置)
网站制作企业,网站的banner和导航栏是指什么?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
UC浏览器如何设置启动页 UC浏览器启动页设置方法
PythonWeb开发入门教程_Flask快速构建Web应用
Android自定义控件实现温度旋转按钮效果
如何快速搭建安全的FTP站点?
如何用搬瓦工VPS快速搭建个人网站?
微信小程序 配置文件详细介绍
Laravel Fortify是什么,和Jetstream有什么关系
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
🚀拖拽式CMS建站能否实现高效与个性化并存?
QQ浏览器网页版登录入口 个人中心在线进入
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
独立制作一个网站多少钱,建立网站需要花多少钱?
用yum安装MySQLdb模块的步骤方法
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Python文件流缓冲机制_IO性能解析【教程】
如何快速搭建高效WAP手机网站?
如何在香港免费服务器上快速搭建网站?
如何在IIS中新建站点并解决端口绑定冲突?
深入理解Android中的xmlns:tools属性
非常酷的网站设计制作软件,酷培ai教育官方网站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
郑州企业网站制作公司,郑州招聘网站有哪些?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解


T OPTIONAL DEPENDENCY os-tmpdir@1.0.2
│ ├─┬ UNMET OPTIONAL DEPENDENCY npm-packlist@1.2.0
│ │ ├─┬ UNMET OPTIONAL DEPENDENCY ignore-walk@3.0.1
│ │ │ └─┬ UNMET DEPENDENCY minimatch@3.0.4
│ │ │ └─┬ UNMET DEPENDENCY brace-expansion@1.1.11
│ │ │ ├── UNMET DEPENDENCY balanced-match@1.0.0
│ │ │ └── UNMET DEPENDENCY concat-map@0.0.1
│ │ └── UNMET OPTIONAL DEPENDENCY npm-bundled@1.0.5
│ ├─┬ UNMET OPTIONAL DEPENDENCY npmlog@4.1.2
│ │ ├─┬ UNMET OPTIONAL DEPENDENCY are-we-there-yet@1.1.5
│ │ │ ├── UNMET OPTIONAL DEPENDENCY delegates@1.0.0
│ │ │ └─┬ UNMET OPTIONAL DEPENDENCY readable-stream@2.3.6
│ │ │ ├── UNMET OPTIONAL DEPENDENCY core-util-is@1.0.2
│ │ │ ├── UNMET DEPENDENCY inherits@2.0.3
│ │ │ ├── UNMET OPTIONAL DEPENDENCY isarray@1.0.0
│ │ │ ├── UNMET OPTIONAL DEPENDENCY process-nextick-args@2.0.0
│ │ │ ├── UNMET DEPENDENCY safe-buffer@5.1.2
│ │ │ ├─┬ UNMET OPTIONAL DEPENDENCY string_decoder@1.1.1
│ │ │ │ └── UNMET DEPENDENCY safe-buffer@5.1.2
│ │ │ └── UNMET OPTIONAL DEPENDENCY util-deprecate@1.0.2
│ │ ├── UNMET DEPENDENCY console-control-strings@1.1.0
│ │ ├─┬ UNMET OPTIONAL DEPENDENCY gauge@2.7.4
│ │ │ ├── UNMET OPTIONAL DEPENDENCY aproba@1.2.0
│ │ │ ├── UNMET DEPENDENCY console-control-strings@1.1.0
│ │ │ ├── UNMET OPTIONAL DEPENDENCY has-unicode@2.0.1
│ │ │ ├── UNMET OPTIONAL DEPENDENCY object-assign@4.1.1
│ │ │ ├── UNMET OPTIONAL DEPENDENCY signal-exit@3.0.2
│ │ │ ├─┬ UNMET DEPENDENCY string-width@1.0.2
│ │ │ │ ├── UNMET DEPENDENCY code-point-at@1.1.0
│ │ │ │ ├─┬ UNMET DEPENDENCY is-fullwidth-code-point@1.0.0
│ │ │ │ │ └── UNMET DEPENDENCY number-is-nan@1.0.1
│ │ │ │ └── UNMET DEPENDENCY strip-ansi@3.0.1
│ │ │ ├─┬ UNMET DEPENDENCY strip-ansi@3.0.1
│ │ │ │ └── UNMET DEPENDENCY ansi-regex@2.1.1
│ │ │ └─┬ UNMET OPTIONAL DEPENDENCY wide-align@1.1.3
│ │ │ └── UNMET DEPENDENCY string-width@1.0.2
│ │ └── UNMET OPTIONAL DEPENDENCY set-blocking@2.0.0
│ ├─┬ UNMET OPTIONAL DEPENDENCY rc@1.2.8
│ │ ├── UNMET OPTIONAL DEPENDENCY deep-extend@0.6.0
│ │ ├── UNMET OPTIONAL DEPENDENCY ini@1.3.5
│ │ ├── UNMET OPTIONAL DEPENDENCY minimist@1.2.0
│ │ └── UNMET OPTIONAL DEPENDENCY strip-json-comments@2.0.1
│ ├─┬ UNMET OPTIONAL DEPENDENCY rimraf@2.6.3
│ │ └─┬ UNMET OPTIONAL DEPENDENCY glob@7.1.3
│ │ ├── UNMET OPTIONAL DEPENDENCY fs.realpath@1.0.0
│ │ ├─┬ UNMET OPTIONAL DEPENDENCY inflight@1.0.6
│ │ │ ├── UNMET DEPENDENCY once@1.4.0
│ │ │ └── UNMET DEPENDENCY wrappy@1.0.2
│ │ ├── UNMET DEPENDENCY inherits@2.0.3
│ │ ├── UNMET DEPENDENCY minimatch@3.0.4
│ │ ├─┬ UNMET DEPENDENCY once@1.4.0
│ │ │ └── UNMET DEPENDENCY wrappy@1.0.2
│ │ └── UNMET OPTIONAL DEPENDENCY path-is-absolute@1.0.1
│ ├── UNMET OPTIONAL DEPENDENCY semver@5.6.0
│ └─┬ UNMET OPTIONAL DEPENDENCY tar@4.4.8
│ ├── UNMET OPTIONAL DEPENDENCY chownr@1.1.1
│ ├─┬ UNMET OPTIONAL DEPENDENCY fs-minipass@1.2.5
│ │ └── UNMET DEPENDENCY minipass@2.3.5
│ ├─┬ UNMET DEPENDENCY minipass@2.3.5
│ │ ├── UNMET DEPENDENCY safe-buffer@5.1.2
│ │ └── UNMET DEPENDENCY yallist@3.0.3
│ ├─┬ UNMET OPTIONAL DEPENDENCY minizlib@1.2.1
│ │ └── UNMET DEPENDENCY minipass@2.3.5
│ ├── UNMET DEPENDENCY mkdirp@0.5.1
│ ├── UNMET DEPENDENCY safe-buffer@5.1.2
│ └── UNMET DEPENDENCY yallist@3.0.3
├─┬ glob-parent@3.1.0
│ ├─┬ is-glob@3.1.0
│ │ └── is-extglob@2.1.1 deduped
│ └── path-dirname@1.0.2
├── inherits@2.0.3
├─┬ is-binary-path@1.0.1
│ └── binary-extensions@1.13.1
├─┬ is-glob@4.0.1
│ └── is-extglob@2.1.1
├── normalize-path@3.0.0
├── path-is-absolute@1.0.1
├─┬ readdirp@2.2.1
│ ├── graceful-fs@4.1.15
│ ├── micromatch@3.1.10 deduped
│ └─┬ readable-stream@2.3.6
│ ├── core-util-is@1.0.2
│ ├── inherits@2.0.3 deduped
│ ├── isarray@1.0.0
│ ├── process-nextick-args@2.0.0
│ ├── safe-buffer@5.1.2
│ ├─┬ string_decoder@1.1.1
│ │ └── safe-buffer@5.1.2 deduped
│ └── util-deprecate@1.0.2
└── upath@1.1.2