重新安装node的gulp二进制文件
用vscode打开licode工程,结果gulp找不到了
- 这个会导致controller启动之后,一堆的报错,而且打印一直不停止?
- 新建了一个脚本 installGulp.sh
- 然后重新 执行 installErizo -c 安装controller
- 然后 重新安装 nve
- 然后install basic example 安装node的一些库
gulp是在install mac deps 的时候,作为node-gyp 什么的组件安装的
重新安装
- 脚本 installGulp.sh 放在scripts下。
- 由于没能成功让脚本找到 nvm命令,所以我还是重新安装了一遍nvm
#!/usr/bin/env sh
echo "copy from installMacDeps.sh to install gulp"
set -e
SCRIPT=`pwd`/$0
FILENAME=`basename $SCRIPT`
PATHNAME=`dirname $SCRIPT`
ROOT=$PATHNAME/..
BUILD_DIR=$ROOT/build
CURRENT_DIR=`pwd`
NVM_CHECK="$PATHNAME"/checkNvm.sh
FAST_MAKE=''
LIB_DIR=$BUILD_DIR/libdeps
PREFIX_DIR=$LIB_DIR/build/
###暂时还是重新安装一遍
install_nvm_node() {
if [ -d $LIB_DIR ]; then
##export nvm path to use nvm binary
export NVM_DIR=$(greadlink -f "$LIB_DIR/nvm")
echo "NVM_DIR IS $NVM_DIR"
if [ ! -s "$NVM_DIR/nvm.sh" ]; then
git clone https://github.com/creationix/nvm.git "$NVM_DIR"
cd "$NVM_DIR"
git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" origin`
cd "$CURRENT_DIR"
fi
. $NVM_CHECK
nvm install
else
mkdir -p $LIB_DIR
install_nvm_node
fi
}
install_brew_deps(){
# brew install glib pkg-config boost cmake yasm log4cxx gettext coreutils conan
install_nvm_node
#export NVM_DIR=/Users/zhangbin/tet/licodelllcode/licode/build/libdeps/nvm
echo "NVM_DIR IS $NVM_DIR"
nvm use
npm install
npm install -g node-gyp
npm install gulp@3.9.1 gulp-eslint@3 run-sequence@2.2.1 webpack-stream@4.0.0 google-closure-compiler-js@20170521.0.0 del@3.0.0 gulp-sourcemaps@2.6.4 script-loader@0.7.2 expose-loader@0.7.5
#if [ "$DISABLE_SERVICES" != "true" ]; then
#brew install rabbitmq mongodb
#fi
}
install_brew_deps
##这样 node_modules/.bin/下会有 gulp这个文件
echo "====done==="```
安装过程
✘ ⚙ zhangbin@zhangbin-mbp ~/tet/licodelllcode/licode branch-pre-v8.4 ●✚ ./scripts/installGulp.sh
copy from installMacDeps.sh to install gulp
NVM_DIR IS /Users/zhangbin/tet/licodelllcode/licode/build/libdeps/nvm
Checking dir /Users/zhangbin/tet/licodelllcode/licode/build/libdeps/nvm
Running nvm
Found '/Users/zhangbin/tet/licodelllcode/licode/.nvmrc' with version <6.14.4>
v6.14.4 is already installed.
Now using node v6.14.4 (npm v3.10.10)
NVM_DIR IS /Users/zhangbin/tet/licodelllcode/licode/build/libdeps/nvm
Found '/Users/zhangbin/tet/licodelllcode/licode/.nvmrc' with version <6.14.4>
Now using node v6.14.4 (npm v3.10.10)
/Users/zhangbin/tet/licodelllcode/licode/build/libdeps/nvm/versions/node/v6.14.4/bin/node-gyp -> /Users/zhangbin/tet/licodelllcode/licode/build/libdeps/nvm/versions/node/v6.14.4/lib/node_modules/node-gyp/bin/node-gyp.js
/Users/zhangbin/tet/licodelllcode/licode/build/libdeps/nvm/versions/node/v6.14.4/lib
└─┬ node-gyp@6.0.1
├── env-paths@2.2.0
├── glob@7.1.5
├── graceful-fs@4.2.3
├─┬ nopt@4.0.1
│ └─┬ osenv@0.1.5
│ ├── os-homedir@1.0.2
│ └── os-tmpdir@1.0.2
└── semver@5.7.1
npm WARN deprecated gulp-util@3.0.8: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated graceful-fs@1.2.3: please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
npm WARN deprecated natives@1.1.6: This module relies on Node.js's internals and will break at some point. Do not use it, and update to graceful-fs@4.x.
> fsevents@1.2.9 install /Users/zhangbin/tet/licodelllcode/licode/node_modules/fsevents
> node install
node-pre-gyp WARN Using request for node-pre-gyp https download
[fsevents] Success: "/Users/zhangbin/tet/licodelllcode/licode/node_modules/fsevents/lib/binding/Release/node-v48-darwin-x64/fse.node" is installed via remote
> uglifyjs-webpack-plugin@0.4.6 postinstall /Users/zhangbin/tet/licodelllcode/licode/node_modules/uglifyjs-webpack-plugin
> node lib/post_install.js
licode@0.1.0 /Users/zhangbin/tet/licodelllcode/licode
├─┬ del@3.0.0
│ ├─┬ globby@6.1.0
│ │ ├── array-union@1.0.2
│ │ └─┬ pinkie-promise@2.0.1
│ │ └── pinkie@2.0.4
│ ├── is-path-cwd@1.0.0
│ ├─┬ is-path-in-cwd@1.0.1
│ │ └── is-path-inside@1.0.1
│ ├── p-map@1.2.0
│ └── pify@3.0.0
├── expose-loader@0.7.5
├─┬ google-closure-compiler-js@20170521.0.0
│ ├── minimist@1.2.0
│ └─┬ webpack-core@0.6.9
│ ├── source-list-map@0.1.8
│ └─┬ source-map@0.4.4
│ └── amdefine@1.0.1
├─┬ gulp@3.9.1
│ ├── archy@1.0.0
│ ├── deprecated@0.0.1
│ ├─┬ liftoff@2.5.0
│ │ ├─┬ findup-sync@2.0.0
│ │ │ ├── detect-file@1.0.0
│ │ │ ├─┬ is-glob@3.1.0
│ │ │ │ └── is-extglob@2.1.1
│ │ │ ├─┬ micromatch@3.1.10
│ │ │ │ ├── arr-diff@4.0.0
│ │ │ │ ├── array-unique@0.3.2
│ │ │ │ ├─┬ define-property@2.0.2
│ │ │ │ │ └─┬ is-descriptor@1.0.2
│ │ │ │ │ ├── is-accessor-descriptor@1.0.0
│ │ │ │ │ └── is-data-descriptor@1.0.0
│ │ │ │ ├─┬ extend-shallow@3.0.2
│ │ │ │ │ ├── assign-symbols@1.0.0
│ │ │ │ │ └── is-extendable@1.0.1
│ │ │ │ ├─┬ extglob@2.0.4
│ │ │ │ │ ├─┬ define-property@1.0.0
│ │ │ │ │ │ └─┬ is-descriptor@1.0.2
│ │ │ │ │ │ ├── is-accessor-descriptor@1.0.0
│ │ │ │ │ │ └── is-data-descriptor@1.0.0
│ │ │ │ │ ├─┬ expand-brackets@2.1.4
│ │ │ │ │ │ ├── define-property@0.2.5
│ │ │ │ │ │ ├── extend-shallow@2.0.1
│ │ │ │ │ │ └── posix-character-classes@0.1.1
│ │ │ │ │ └── extend-shallow@2.0.1
│ │ │ │ ├── fragment-cache@0.2.1
│ │ │ │ ├── kind-of@6.0.2
│ │ │ │ ├─┬ nanomatch@1.2.13
│ │ │ │ │ └── is-windows@1.0.2
│ │ │ │ ├─┬ regex-not@1.0.2
│ │ │ │ │ └─┬ safe-regex@1.1.0
│ │ │ │ │ └── ret@0.1.15
│ │ │ │ ├─┬ snapdragon@0.8.2
│ │ │ │ │ ├─┬ base@0.11.2
│ │ │ │ │ │ ├─┬ cache-base@1.0.1
│ │ │ │ │ │ │ ├─┬ collection-visit@1.0.0
│ │ │ │ │ │ │ │ ├── map-visit@1.0.0
│ │ │ │ │ │ │ │ └── object-visit@1.0.1
│ │ │ │ │ │ │ ├── get-value@2.0.6
│ │ │ │ │ │ │ ├─┬ has-value@1.0.0
│ │ │ │ │ │ │ │ └─┬ has-values@1.0.0
│ │ │ │ │ │ │ │ └── kind-of@4.0.0
│ │ │ │ │ │ │ ├─┬ set-value@2.0.1
│ │ │ │ │ │ │ │ └── extend-shallow@2.0.1
│ │ │ │ │ │ │ ├─┬ to-object-path@0.3.0
│ │ │ │ │ │ │ │ └── kind-of@3.2.2
│ │ │ │ │ │ │ ├── union-value@1.0.1
│ │ │ │ │ │ │ └─┬ unset-value@1.0.0
│ │ │ │ │ │ │ └─┬ has-value@0.3.1
│ │ │ │ │ │ │ ├── has-values@0.1.4
│ │ │ │ │ │ │ └── isobject@2.1.0
│ │ │ │ │ │ ├─┬ class-utils@0.3.6
│ │ │ │ │ │ │ ├── arr-union@3.1.0
│ │ │ │ │ │ │ ├── define-property@0.2.5
│ │ │ │ │ │ │ └─┬ static-extend@0.1.2
│ │ │ │ │ │ │ ├── define-property@0.2.5
│ │ │ │ │ │ │ └─┬ object-copy@0.1.0
│ │ │ │ │ │ │ ├── copy-descriptor@0.1.1
│ │ │ │ │ │ │ ├── define-property@0.2.5
│ │ │ │ │ │ │ └── kind-of@3.2.2
│ │ │ │ │ │ ├─┬ define-property@1.0.0
│ │ │ │ │ │ │ └─┬ is-descriptor@1.0.2
│ │ │ │ │ │ │ ├── is-accessor-descriptor@1.0.0
│ │ │ │ │ │ │ └── is-data-descriptor@1.0.0
│ │ │ │ │ │ ├─┬ mixin-deep@1.3.2
│ │ │ │ │ │ │ └── is-extendable@1.0.1
│ │ │ │ │ │ └── pascalcase@0.1.1
│ │ │ │ │ ├─┬ define-property@0.2.5
│ │ │ │ │ │ └─┬ is-descriptor@0.1.6
│ │ │ │ │ │ ├─┬ is-accessor-descriptor@0.1.6
│ │ │ │ │ │ │ └── kind-of@3.2.2
│ │ │ │ │ │ ├─┬ is-data-descriptor@0.1.4
│ │ │ │ │ │ │ └── kind-of@3.2.2
│ │ │ │ │ │ └── kind-of@5.1.0
│ │ │ │ │ ├── extend-shallow@2.0.1
│ │ │ │ │ ├── source-map@0.5.7
│ │ │ │ │ └── use@3.1.1
│ │ │ │ └── to-regex@3.0.2
│ │ │ └─┬ resolve-dir@1.0.1
│ │ │ └─┬ global-modules@1.0.0
│ │ │ └─┬ global-prefix@1.0.2
│ │ │ └── ini@1.3.5
│ │ ├─┬ fined@1.2.0
│ │ │ ├─┬ expand-tilde@2.0.2
│ │ │ │ └─┬ homedir-polyfill@1.0.3
│ │ │ │ └── parse-passwd@1.0.0
│ │ │ ├─┬ object.defaults@1.1.0
│ │ │ │ ├── array-each@1.0.1
│ │ │ │ └── array-slice@1.1.0
│ │ │ ├── object.pick@1.3.0
│ │ │ └─┬ parse-filepath@1.0.2
│ │ │ ├─┬ is-absolute@1.0.0
│ │ │ │ └─┬ is-relative@1.0.0
│ │ │ │ └─┬ is-unc-path@1.0.0
│ │ │ │ └── unc-path-regex@0.1.2
│ │ │ ├── map-cache@0.2.2
│ │ │ └─┬ path-root@0.1.1
│ │ │ └── path-root-regex@0.1.2
│ │ ├── flagged-respawn@1.0.1
│ │ ├─┬ is-plain-object@2.0.4
│ │ │ └── isobject@3.0.1
│ │ └─┬ object.map@1.0.1
│ │ ├─┬ for-own@1.0.0
│ │ │ └── for-in@1.0.2
│ │ └── make-iterator@1.0.1
│ ├── minimist@1.2.0
│ ├─┬ orchestrator@0.3.8
│ │ ├─┬ end-of-stream@0.1.5
│ │ │ └── once@1.3.3
│ │ ├── sequencify@0.0.7
│ │ └── stream-consume@0.1.1
│ ├── pretty-hrtime@1.0.3
│ ├── semver@4.3.6
│ ├── tildify@1.2.0
│ ├─┬ v8flags@2.1.1
│ │ └── user-home@1.1.1
│ └─┬ vinyl-fs@0.3.14
│ ├─┬ defaults@1.0.3
│ │ └── clone@1.0.4
│ ├─┬ glob-stream@3.1.18
│ │ ├── glob@4.5.3
│ │ ├─┬ glob2base@0.0.12
│ │ │ └── find-index@0.1.1
│ │ ├── minimatch@2.0.10
│ │ ├── ordered-read-streams@0.1.0
│ │ ├─┬ through2@0.6.5
│ │ │ └─┬ readable-stream@1.0.34
│ │ │ ├── isarray@0.0.1
│ │ │ └── string_decoder@0.10.31
│ │ └── unique-stream@1.0.0
│ ├─┬ glob-watcher@0.0.6
│ │ └─┬ gaze@0.5.2
│ │ └─┬ globule@0.1.0
│ │ ├─┬ glob@3.1.21
│ │ │ ├── graceful-fs@1.2.3
│ │ │ └── inherits@1.0.2
│ │ ├── lodash@1.0.2
│ │ └─┬ minimatch@0.2.14
│ │ ├── lru-cache@2.7.3
│ │ └── sigmund@1.0.1
│ ├─┬ graceful-fs@3.0.12
│ │ └── natives@1.1.6
│ ├─┬ strip-bom@1.0.0
│ │ ├── first-chunk-stream@1.0.0
│ │ └── is-utf8@0.2.1
│ ├─┬ through2@0.6.5
│ │ └─┬ readable-stream@1.0.34
│ │ ├── isarray@0.0.1
│ │ └── string_decoder@0.10.31
│ └─┬ vinyl@0.4.6
│ ├── clone@0.2.0
│ └── clone-stats@0.0.1
├─┬ gulp-eslint@3.0.1
│ └── bufferstreams@1.1.3
├─┬ gulp-sourcemaps@2.6.4
│ ├─┬ @gulp-sourcemaps/identity-map@1.0.2
│ │ ├── normalize-path@2.1.1
│ │ └── source-map@0.6.1
│ ├── @gulp-sourcemaps/map-sources@1.0.0
│ ├── convert-source-map@1.6.0
│ ├─┬ css@2.2.4
│ │ ├── source-map@0.6.1
│ │ ├─┬ source-map-resolve@0.5.2
│ │ │ ├── atob@2.1.2
│ │ │ ├── decode-uri-component@0.2.0
│ │ │ ├── resolve-url@0.2.1
│ │ │ └── source-map-url@0.4.0
│ │ └── urix@0.1.0
│ ├─┬ debug-fabulous@1.1.0
│ │ ├─┬ debug@3.2.6
│ │ │ └── ms@2.1.2
│ │ └─┬ memoizee@0.4.14
│ │ ├── is-promise@2.1.0
│ │ ├── lru-queue@0.1.0
│ │ └── timers-ext@0.1.7
│ ├── detect-newline@2.1.0
│ ├── source-map@0.6.1
│ ├── strip-bom-string@1.0.0
│ └── through2@2.0.5
├─┬ run-sequence@2.2.1
│ ├─┬ fancy-log@1.3.3
│ │ ├─┬ ansi-gray@0.1.1
│ │ │ └── ansi-wrap@0.1.0
│ │ ├── color-support@1.1.3
│ │ ├── parse-node-version@1.0.1
│ │ └── time-stamp@1.1.0
│ └─┬ plugin-error@0.1.2
│ ├── ansi-cyan@0.1.1
│ ├── ansi-red@0.1.1
│ ├─┬ arr-diff@1.1.0
│ │ ├── arr-flatten@1.1.0
│ │ └── array-slice@0.2.3
│ ├── arr-union@2.1.0
│ └─┬ extend-shallow@1.1.4
│ └── kind-of@1.1.0
├─┬ script-loader@0.7.2
│ └── raw-loader@0.5.1
└─┬ webpack-stream@4.0.0
├─┬ gulp-util@3.0.8
│ ├── array-differ@1.0.0
│ ├── array-uniq@1.0.3
│ ├── beeper@1.1.1
│ ├── dateformat@2.2.0
│ ├─┬ gulplog@1.0.0
│ │ └── glogg@1.0.2
│ ├─┬ has-gulplog@0.1.0
│ │ └── sparkles@1.0.1
│ ├── lodash._reescape@3.0.0
│ ├── lodash._reevaluate@3.0.0
│ ├── lodash._reinterpolate@3.0.0
│ ├─┬ lodash.template@3.6.2
│ │ ├── lodash._basetostring@3.0.1
│ │ ├── lodash._basevalues@3.0.0
│ │ ├─┬ lodash.escape@3.2.0
│ │ │ └── lodash._root@3.0.1
│ │ ├── lodash.restparam@3.6.1
│ │ └── lodash.templatesettings@3.1.1
│ ├── minimist@1.2.0
│ ├─┬ multipipe@0.1.2
│ │ └─┬ duplexer2@0.0.2
│ │ └─┬ readable-stream@1.1.14
│ │ ├── isarray@0.0.1
│ │ └── string_decoder@0.10.31
│ ├── object-assign@3.0.0
│ ├── replace-ext@0.0.1
│ └─┬ vinyl@0.5.3
│ ├── clone@1.0.4
│ └── clone-stats@0.0.1
├── lodash.clone@4.5.0
├── lodash.some@4.6.0
├─┬ memory-fs@0.4.1
│ └─┬ errno@0.1.7
│ └── prr@1.0.1
├─┬ vinyl@2.2.0
│ ├── clone@2.1.2
│ ├── clone-buffer@1.0.0
│ ├── clone-stats@1.0.0
│ ├── cloneable-readable@1.1.3
│ ├── remove-trailing-separator@1.1.0
│ └── replace-ext@1.0.0
└─┬ webpack@3.12.0
├─┬ acorn-dynamic-import@2.0.2
│ └── acorn@4.0.13
├─┬ ajv@6.10.2
│ ├── fast-deep-equal@2.0.1
│ ├── fast-json-stable-stringify@2.0.0
│ ├── json-schema-traverse@0.4.1
│ └─┬ uri-js@4.2.2
│ └── punycode@2.1.1
├── ajv-keywords@3.4.1
├── enhanced-resolve@3.4.1
├── json-loader@0.5.7
├── json5@0.5.1
├── loader-runner@2.4.0
├─┬ loader-utils@1.2.3
│ ├── big.js@5.2.2
│ ├── emojis-list@2.1.0
│ └─┬ json5@1.0.1
│ └── minimist@1.2.0
├─┬ node-libs-browser@2.2.1
│ ├─┬ assert@1.5.0
│ │ └─┬ util@0.10.3
│ │ └── inherits@2.0.1
│ ├─┬ browserify-zlib@0.2.0
│ │ └── pako@1.0.10
│ ├─┬ buffer@4.9.1
│ │ ├── base64-js@1.3.1
│ │ └── ieee754@1.1.13
│ ├── console-browserify@1.2.0
│ ├── constants-browserify@1.0.0
│ ├─┬ crypto-browserify@3.12.0
│ │ ├─┬ browserify-cipher@1.0.1
│ │ │ ├─┬ browserify-aes@1.2.0
│ │ │ │ └── buffer-xor@1.0.3
│ │ │ ├─┬ browserify-des@1.0.2
│ │ │ │ └── des.js@1.0.0
│ │ │ └── evp_bytestokey@1.0.3
│ │ ├─┬ browserify-sign@4.0.4
│ │ │ ├── bn.js@4.11.8
│ │ │ ├── browserify-rsa@4.0.1
│ │ │ ├─┬ elliptic@6.5.1
│ │ │ │ ├── brorand@1.1.0
│ │ │ │ ├── hash.js@1.1.7
│ │ │ │ ├── hmac-drbg@1.0.1
│ │ │ │ ├── minimalistic-assert@1.0.1
│ │ │ │ └── minimalistic-crypto-utils@1.0.1
│ │ │ └─┬ parse-asn1@5.1.5
│ │ │ └── asn1.js@4.10.1
│ │ ├── create-ecdh@4.0.3
│ │ ├─┬ create-hash@1.2.0
│ │ │ ├── cipher-base@1.0.4
│ │ │ ├─┬ md5.js@1.3.5
│ │ │ │ └── hash-base@3.0.4
│ │ │ ├── ripemd160@2.0.2
│ │ │ └── sha.js@2.4.11
│ │ ├── create-hmac@1.1.7
│ │ ├─┬ diffie-hellman@5.0.3
│ │ │ └── miller-rabin@4.0.1
│ │ ├── pbkdf2@3.0.17
│ │ ├── public-encrypt@4.0.3
│ │ ├── randombytes@2.1.0
│ │ └── randomfill@1.0.4
│ ├── domain-browser@1.2.0
│ ├── events@3.0.0
│ ├── https-browserify@1.0.0
│ ├── os-browserify@0.3.0
│ ├── path-browserify@0.0.1
│ ├── process@0.11.10
│ ├── punycode@1.4.1
│ ├── querystring-es3@0.2.1
│ ├── stream-browserify@2.0.2
│ ├─┬ stream-http@2.8.3
│ │ ├── builtin-status-codes@3.0.0
│ │ └── to-arraybuffer@1.0.1
│ ├─┬ timers-browserify@2.0.11
│ │ └── setimmediate@1.0.5
│ ├── tty-browserify@0.0.0
│ ├─┬ url@0.11.0
│ │ ├── punycode@1.3.2
│ │ └── querystring@0.2.0
│ ├─┬ util@0.11.1
│ │ └── inherits@2.0.3
│ └── vm-browserify@1.1.0
├── source-map@0.5.7
├─┬ supports-color@4.5.0
│ └── has-flag@2.0.0
├── tapable@0.2.9
├─┬ uglifyjs-webpack-plugin@0.4.6
│ ├── source-map@0.5.7
│ └─┬ uglify-js@2.8.29
│ ├── source-map@0.5.7
│ ├── uglify-to-browserify@1.0.2
│ └─┬ yargs@3.10.0
│ ├── camelcase@1.2.1
│ ├─┬ cliui@2.1.0
│ │ ├─┬ center-align@0.1.3
│ │ │ ├─┬ align-text@0.1.4
│ │ │ │ ├── kind-of@3.2.2
│ │ │ │ └── longest@1.0.1
│ │ │ └── lazy-cache@1.0.4
│ │ ├── right-align@0.1.3
│ │ └── wordwrap@0.0.2
│ └── window-size@0.1.0
├─┬ watchpack@1.6.0
│ ├─┬ chokidar@2.1.8
│ │ ├── anymatch@2.0.0
│ │ ├── async-each@1.0.3
│ │ ├─┬ braces@2.3.2
│ │ │ ├─┬ extend-shallow@2.0.1
│ │ │ │ └── is-extendable@0.1.1
│ │ │ ├─┬ fill-range@4.0.0
│ │ │ │ ├── extend-shallow@2.0.1
│ │ │ │ ├─┬ is-number@3.0.0
│ │ │ │ │ └─┬ kind-of@3.2.2
│ │ │ │ │ └── is-buffer@1.1.6
│ │ │ │ ├── repeat-string@1.6.1
│ │ │ │ └── to-regex-range@2.1.1
│ │ │ ├── repeat-element@1.1.3
│ │ │ ├─┬ snapdragon-node@2.1.1
│ │ │ │ ├─┬ define-property@1.0.0
│ │ │ │ │ └─┬ is-descriptor@1.0.2
│ │ │ │ │ ├── is-accessor-descriptor@1.0.0
│ │ │ │ │ └── is-data-descriptor@1.0.0
│ │ │ │ └─┬ snapdragon-util@3.0.1
│ │ │ │ └── kind-of@3.2.2
│ │ │ └── split-string@3.1.0
│ │ ├─┬ fsevents@1.2.9
│ │ │ └─┬ node-pre-gyp@0.12.0
│ │ │ ├── detect-libc@1.0.3
│ │ │ ├─┬ mkdirp@0.5.1
│ │ │ │ └── minimist@0.0.8
│ │ │ ├─┬ needle@2.3.0
│ │ │ │ ├─┬ debug@4.1.1
│ │ │ │ │ └── ms@2.1.1
│ │ │ │ ├─┬ iconv-lite@0.4.24
│ │ │ │ │ └── safer-buffer@2.1.2
│ │ │ │ └── sax@1.2.4
│ │ │ ├─┬ nopt@4.0.1
│ │ │ │ ├── abbrev@1.1.1
│ │ │ │ └─┬ osenv@0.1.5
│ │ │ │ ├── os-homedir@1.0.2
│ │ │ │ └── os-tmpdir@1.0.2
│ │ │ ├─┬ npm-packlist@1.4.1
│ │ │ │ ├─┬ ignore-walk@3.0.1
│ │ │ │ │ └─┬ minimatch@3.0.4
│ │ │ │ │ └─┬ brace-expansion@1.1.11
│ │ │ │ │ ├── balanced-match@1.0.0
│ │ │ │ │ └── concat-map@0.0.1
│ │ │ │ └── npm-bundled@1.0.6
│ │ │ ├─┬ npmlog@4.1.2
│ │ │ │ ├─┬ are-we-there-yet@1.1.5
│ │ │ │ │ ├── delegates@1.0.0
│ │ │ │ │ └─┬ readable-stream@2.3.6
│ │ │ │ │ ├── core-util-is@1.0.2
│ │ │ │ │ ├── isarray@1.0.0
│ │ │ │ │ ├── process-nextick-args@2.0.0
│ │ │ │ │ ├── string_decoder@1.1.1
│ │ │ │ │ └── util-deprecate@1.0.2
│ │ │ │ ├── console-control-strings@1.1.0
│ │ │ │ ├─┬ gauge@2.7.4
│ │ │ │ │ ├── aproba@1.2.0
│ │ │ │ │ ├── has-unicode@2.0.1
│ │ │ │ │ ├── object-assign@4.1.1
│ │ │ │ │ ├── signal-exit@3.0.2
│ │ │ │ │ ├─┬ string-width@1.0.2
│ │ │ │ │ │ ├── code-point-at@1.1.0
│ │ │ │ │ │ └─┬ is-fullwidth-code-point@1.0.0
│ │ │ │ │ │ └── number-is-nan@1.0.1
│ │ │ │ │ ├─┬ strip-ansi@3.0.1
│ │ │ │ │ │ └── ansi-regex@2.1.1
│ │ │ │ │ └── wide-align@1.1.3
│ │ │ │ └── set-blocking@2.0.0
│ │ │ ├─┬ rc@1.2.8
│ │ │ │ ├── deep-extend@0.6.0
│ │ │ │ ├── ini@1.3.5
│ │ │ │ ├── minimist@1.2.0
│ │ │ │ └── strip-json-comments@2.0.1
│ │ │ ├─┬ rimraf@2.6.3
│ │ │ │ └─┬ glob@7.1.3
│ │ │ │ ├── fs.realpath@1.0.0
│ │ │ │ ├─┬ inflight@1.0.6
│ │ │ │ │ └── wrappy@1.0.2
│ │ │ │ ├── inherits@2.0.3
│ │ │ │ ├── once@1.4.0
│ │ │ │ └── path-is-absolute@1.0.1
│ │ │ ├── semver@5.7.0
│ │ │ └─┬ tar@4.4.8
│ │ │ ├── chownr@1.1.1
│ │ │ ├── fs-minipass@1.2.5
│ │ │ ├── minipass@2.3.5
│ │ │ ├── minizlib@1.2.1
│ │ │ ├── safe-buffer@5.1.2
│ │ │ └── yallist@3.0.3
│ │ ├─┬ glob-parent@3.1.0
│ │ │ └── path-dirname@1.0.2
│ │ ├─┬ is-binary-path@1.0.1
│ │ │ └── binary-extensions@1.13.1
│ │ ├── is-glob@4.0.1
│ │ ├── normalize-path@3.0.0
│ │ ├── readdirp@2.2.1
│ │ └── upath@1.2.0
│ └── neo-async@2.6.1
├─┬ webpack-sources@1.4.3
│ ├── source-list-map@2.0.1
│ └── source-map@0.6.1
└─┬ yargs@8.0.2
├── camelcase@4.1.0
├─┬ cliui@3.2.0
│ ├── string-width@1.0.2
│ └── wrap-ansi@2.1.0
├── decamelize@1.2.0
├── get-caller-file@1.0.3
├─┬ os-locale@2.1.0
│ ├─┬ execa@0.7.0
│ │ ├─┬ cross-spawn@5.1.0
│ │ │ ├─┬ lru-cache@4.1.5
│ │ │ │ ├── pseudomap@1.0.2
│ │ │ │ └── yallist@2.1.2
│ │ │ ├─┬ shebang-command@1.2.0
│ │ │ │ └── shebang-regex@1.0.0
│ │ │ └─┬ which@1.3.1
│ │ │ └── isexe@2.0.0
│ │ ├── get-stream@3.0.0
│ │ ├── is-stream@1.1.0
│ │ ├─┬ npm-run-path@2.0.2
│ │ │ └── path-key@2.0.1
│ │ ├── p-finally@1.0.0
│ │ ├── signal-exit@3.0.2
│ │ └── strip-eof@1.0.0
│ ├─┬ lcid@1.0.0
│ │ └── invert-kv@1.0.0
│ └─┬ mem@1.1.0
│ └── mimic-fn@1.2.0
├── require-directory@2.1.1
├── require-main-filename@1.0.1
├── set-blocking@2.0.0
├─┬ string-width@2.1.1
│ ├── is-fullwidth-code-point@2.0.0
│ └─┬ strip-ansi@4.0.0
│ └── ansi-regex@3.0.0
├── which-module@2.0.0
├── y18n@3.2.1
└─┬ yargs-parser@7.0.0
└── camelcase@4.1.0
====done===