Installing Cordova

Posted by admin at January 22, 2017

Cordova, an SDK offering from Apache that enables the development of mobile apps using web technologies (HTML, JS, CSS). It forms the set of libraries on which other successful app development frameworks like PhoneGp and Ionic were built on. To develop non-native apps in these frameworks will require the Cordova CLI pre-installed.

What we need

For installation we need the NodeJS, because we need npm to install Cordova.

For app development with Cordova,

  1. an IDE such as XCode for OS development and Android Studio (and SDK) for Android development
  2. and Git for versioning

Installation

First to check if Cordova has been installed

cordova --version

If installed, the version of the application will be displayed. To install, enter the line into the terminal:

npm install -g cordova

Add sudo at the beginning if installing on a Mac OS. Instructions for getting started on using Cordova can be found on the Apache Cordova website, https://cordova.apache.org/.

Installation Log

  1. Ran the command at the terminal
    npm install -g cordova
  2. Got some errors on denied permissions as below

    
    npm ERR! Darwin 14.1.0
    npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "cordova"
    npm ERR! node v6.9.4
    npm ERR! npm  v3.10.10
    npm ERR! path /usr/local/lib/node_modules
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall access
    
    npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'access',
    npm ERR!   path: '/usr/local/lib/node_modules' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.
    
    npm ERR! Please include the following file with any support request:
    npm ERR!     /Users/bg-air-mac/npm-debug.log
    
  3. Changed the folder permissions for the /usr/local/lib/ folder and re-ran the command
  4. Installation completed with 1 warning and no errors. Results are below:

    
    npm WARN deprecated node-uuid@1.4.7: use uuid module instead
    /usr/local/bin/cordova -> /usr/local/lib/node_modules/cordova/bin/cordova
    


    
    /usr/local/lib
    └─┬ cordova@6.4.0 
      ├─┬ cordova-common@1.5.1 
      │ ├── ansi@0.3.1 
      │ ├─┬ bplist-parser@0.1.1 
      │ │ └── big-integer@1.6.17 
      │ ├── cordova-registry-mapper@1.1.15 
      │ ├─┬ elementtree@0.1.6 
      │ │ └── sax@0.3.5 
      │ ├─┬ glob@5.0.15 
      │ │ ├─┬ inflight@1.0.6 
      │ │ │ └── wrappy@1.0.2 
      │ │ ├── inherits@2.0.3 
      │ │ ├── once@1.4.0 
      │ │ └── path-is-absolute@1.0.1 
      │ ├─┬ minimatch@3.0.3 
      │ │ └─┬ brace-expansion@1.1.6 
      │ │   ├── balanced-match@0.4.2 
      │ │   └── concat-map@0.0.1 
      │ ├─┬ osenv@0.1.4 
      │ │ ├── os-homedir@1.0.2 
      │ │ └── os-tmpdir@1.0.2 
      │ ├─┬ plist@1.2.0 
      │ │ ├── base64-js@0.0.8 
      │ │ ├── util-deprecate@1.0.2 
      │ │ ├── xmlbuilder@4.0.0 
      │ │ └── xmldom@0.1.27 
      │ ├── q@1.4.1 
      │ ├── semver@5.3.0 
      │ ├── shelljs@0.5.3 
      │ ├── underscore@1.8.3 
      │ └── unorm@1.4.1 
      ├─┬ cordova-lib@6.4.0 
      │ ├─┬ aliasify@1.9.0 
      │ │ └─┬ browserify-transform-tools@1.5.3 
      │ │   └─┬ falafel@1.2.0 
      │ │     ├── acorn@1.2.2 
      │ │     ├── foreach@2.0.5 
      │ │     ├── isarray@0.0.1 
      │ │     └── object-keys@1.0.11 
      │ ├─┬ cordova-create@1.0.1 
      │ │ ├── cordova-app-hello-world@3.11.0 
      │ │ └── shelljs@0.3.0 
      │ ├─┬ cordova-fetch@1.0.1 
      │ │ ├─┬ dependency-ls@1.0.0 
      │ │ │ └── q@1.4.1 
      │ │ ├── is-url@1.2.2 
      │ │ ├── q@1.4.1 
      │ │ └─┬ shelljs@0.7.6 
      │ │   ├─┬ glob@7.1.1 
      │ │   │ └── fs.realpath@1.0.0 
      │ │   ├── interpret@1.0.1 
      │ │   └── rechoir@0.6.2 
      │ ├─┬ cordova-js@4.2.0 
      │ │ └─┬ browserify@13.1.0 
      │ │   ├── assert@1.3.0 
      │ │   ├─┬ browser-pack@6.0.2 
      │ │   │ ├─┬ combine-source-map@0.7.2 
      │ │   │ │ ├── convert-source-map@1.1.3 
      │ │   │ │ ├── inline-source-map@0.6.2 
      │ │   │ │ ├── lodash.memoize@3.0.4 
      │ │   │ │ └── source-map@0.5.6 
      │ │   │ └── umd@3.0.1 
      │ │   ├─┬ browser-resolve@1.11.2 
      │ │   │ └── resolve@1.1.7 
      │ │   ├─┬ browserify-zlib@0.1.4 
      │ │   │ └── pako@0.2.9 
      │ │   ├─┬ buffer@4.9.1 
      │ │   │ ├── base64-js@1.2.0 
      │ │   │ ├── ieee754@1.1.8 
      │ │   │ └── isarray@1.0.0 
      │ │   ├─┬ concat-stream@1.5.2 
      │ │   │ ├─┬ readable-stream@2.0.6 
      │ │   │ │ └── isarray@1.0.0 
      │ │   │ └── typedarray@0.0.6 
      │ │   ├─┬ console-browserify@1.1.0 
      │ │   │ └── date-now@0.1.4 
      │ │   ├── constants-browserify@1.0.0 
      │ │   ├─┬ crypto-browserify@3.11.0 
      │ │   │ ├─┬ browserify-cipher@1.0.0 
      │ │   │ │ ├─┬ browserify-aes@1.0.6 
      │ │   │ │ │ └── buffer-xor@1.0.3 
      │ │   │ │ ├─┬ browserify-des@1.0.0 
      │ │   │ │ │ └─┬ des.js@1.0.0 
      │ │   │ │ │   └── minimalistic-assert@1.0.0 
      │ │   │ │ └── evp_bytestokey@1.0.0 
      │ │   │ ├─┬ browserify-sign@4.0.0 
      │ │   │ │ ├── bn.js@4.11.6 
      │ │   │ │ ├── browserify-rsa@4.0.1 
      │ │   │ │ ├─┬ elliptic@6.3.2 
      │ │   │ │ │ ├── brorand@1.0.6 
      │ │   │ │ │ └── hash.js@1.0.3 
      │ │   │ │ └─┬ parse-asn1@5.0.0 
      │ │   │ │   └── asn1.js@4.9.1 
      │ │   │ ├── create-ecdh@4.0.0 
      │ │   │ ├─┬ create-hash@1.1.2 
      │ │   │ │ ├── cipher-base@1.0.3 
      │ │   │ │ └── ripemd160@1.0.1 
      │ │   │ ├── create-hmac@1.1.4 
      │ │   │ ├─┬ diffie-hellman@5.0.2 
      │ │   │ │ └── miller-rabin@4.0.0 
      │ │   │ ├── pbkdf2@3.0.9 
      │ │   │ ├── public-encrypt@4.0.0 
      │ │   │ └── randombytes@2.0.3 
      │ │   ├── defined@1.0.0 
      │ │   ├── deps-sort@2.0.0 
      │ │   ├── domain-browser@1.1.7 
      │ │   ├── duplexer2@0.1.4 
      │ │   ├── events@1.1.1 
      │ │   ├─┬ has@1.0.1 
      │ │   │ └── function-bind@1.1.0 
      │ │   ├── htmlescape@1.1.1 
      │ │   ├── https-browserify@0.0.1 
      │ │   ├─┬ insert-module-globals@7.0.1 
      │ │   │ ├── is-buffer@1.1.4 
      │ │   │ └─┬ lexical-scope@1.2.0 
      │ │   │   └── astw@2.0.0 
      │ │   ├─┬ JSONStream@1.3.0 
      │ │   │ └── jsonparse@1.3.0 
      │ │   ├─┬ labeled-stream-splicer@2.0.0 
      │ │   │ └── stream-splicer@2.0.0 
      │ │   ├─┬ module-deps@4.0.8 
      │ │   │ ├── cached-path-relative@1.0.0 
      │ │   │ ├─┬ detective@4.3.2 
      │ │   │ │ └── acorn@3.3.0 
      │ │   │ └── stream-combiner2@1.1.1 
      │ │   ├── os-browserify@0.1.2 
      │ │   ├─┬ parents@1.0.1 
      │ │   │ └── path-platform@0.11.15 
      │ │   ├── path-browserify@0.0.0 
      │ │   ├── process@0.11.9 
      │ │   ├── querystring-es3@0.2.1 
      │ │   ├── read-only-stream@2.0.0 
      │ │   ├─┬ readable-stream@2.2.2 
      │ │   │ ├── buffer-shims@1.0.0 
      │ │   │ ├── core-util-is@1.0.2 
      │ │   │ ├── isarray@1.0.0 
      │ │   │ └── process-nextick-args@1.0.7 
      │ │   ├── resolve@1.2.0 
      │ │   ├─┬ shasum@1.0.2 
      │ │   │ ├── json-stable-stringify@0.0.1 
      │ │   │ └── sha.js@2.4.8 
      │ │   ├─┬ shell-quote@1.6.1 
      │ │   │ ├── array-filter@0.0.1 
      │ │   │ ├── array-map@0.0.0 
      │ │   │ ├── array-reduce@0.0.0 
      │ │   │ └── jsonify@0.0.0 
      │ │   ├── stream-browserify@2.0.1 
      │ │   ├─┬ stream-http@2.6.3 
      │ │   │ ├── builtin-status-codes@3.0.0 
      │ │   │ └── to-arraybuffer@1.0.1 
      │ │   ├── string_decoder@0.10.31 
      │ │   ├── subarg@1.0.0 
      │ │   ├─┬ syntax-error@1.1.6 
      │ │   │ └── acorn@2.7.0 
      │ │   ├── through2@2.0.3 
      │ │   ├── timers-browserify@1.4.2 
      │ │   ├── tty-browserify@0.0.0 
      │ │   ├─┬ url@0.11.0 
      │ │   │ ├── punycode@1.3.2 
      │ │   │ └── querystring@0.2.0 
      │ │   ├─┬ util@0.10.3 
      │ │   │ └── inherits@2.0.1 
      │ │   ├─┬ vm-browserify@0.0.4 
      │ │   │ └── indexof@0.0.1 
      │ │   └── xtend@4.0.1 
      │ ├─┬ cordova-serve@1.0.1 
      │ │ ├─┬ compression@1.6.2 
      │ │ │ ├─┬ accepts@1.3.3 
      │ │ │ │ └── negotiator@0.6.1 
      │ │ │ ├── bytes@2.3.0 
      │ │ │ ├── compressible@2.0.9 
      │ │ │ ├─┬ debug@2.2.0 
      │ │ │ │ └── ms@0.7.1 
      │ │ │ ├── on-headers@1.0.1 
      │ │ │ └── vary@1.1.0 
      │ │ ├─┬ express@4.14.0 
      │ │ │ ├── array-flatten@1.1.1 
      │ │ │ ├── content-disposition@0.5.1 
      │ │ │ ├── content-type@1.0.2 
      │ │ │ ├── cookie@0.3.1 
      │ │ │ ├── cookie-signature@1.0.6 
      │ │ │ ├── depd@1.1.0 
      │ │ │ ├── encodeurl@1.0.1 
      │ │ │ ├── escape-html@1.0.3 
      │ │ │ ├── etag@1.7.0 
      │ │ │ ├─┬ finalhandler@0.5.0 
      │ │ │ │ ├── statuses@1.3.1 
      │ │ │ │ └── unpipe@1.0.0 
      │ │ │ ├── fresh@0.3.0 
      │ │ │ ├── merge-descriptors@1.0.1 
      │ │ │ ├── methods@1.1.2 
      │ │ │ ├─┬ on-finished@2.3.0 
      │ │ │ │ └── ee-first@1.1.1 
      │ │ │ ├── parseurl@1.3.1 
      │ │ │ ├── path-to-regexp@0.1.7 
      │ │ │ ├─┬ proxy-addr@1.1.3 
      │ │ │ │ ├── forwarded@0.1.0 
      │ │ │ │ └── ipaddr.js@1.2.0 
      │ │ │ ├── qs@6.2.0 
      │ │ │ ├── range-parser@1.2.0 
      │ │ │ ├─┬ send@0.14.1 
      │ │ │ │ ├── destroy@1.0.4 
      │ │ │ │ ├─┬ http-errors@1.5.1 
      │ │ │ │ │ └── setprototypeof@1.0.2 
      │ │ │ │ └── mime@1.3.4 
      │ │ │ ├── serve-static@1.11.1 
      │ │ │ ├─┬ type-is@1.6.14 
      │ │ │ │ └── media-typer@0.3.0 
      │ │ │ └── utils-merge@1.0.0 
      │ │ └── q@1.4.1 
      │ ├─┬ dep-graph@1.1.0 
      │ │ └── underscore@1.2.1 
      │ ├─┬ init-package-json@1.9.4 
      │ │ ├── glob@6.0.4 
      │ │ ├─┬ npm-package-arg@4.2.0 
      │ │ │ └── hosted-git-info@2.1.5 
      │ │ ├── promzard@0.3.0 
      │ │ ├─┬ read@1.0.7 
      │ │ │ └── mute-stream@0.0.7 
      │ │ ├─┬ read-package-json@2.0.4 
      │ │ │ ├── glob@6.0.4 
      │ │ │ ├─┬ json-parse-helpfulerror@1.0.3 
      │ │ │ │ └── jju@1.3.0 
      │ │ │ └─┬ normalize-package-data@2.3.5 
      │ │ │   └─┬ is-builtin-module@1.0.0 
      │ │ │     └── builtin-modules@1.1.1 
      │ │ ├─┬ validate-npm-package-license@3.0.1 
      │ │ │ ├─┬ spdx-correct@1.0.2 
      │ │ │ │ └── spdx-license-ids@1.2.2 
      │ │ │ └── spdx-expression-parse@1.0.4 
      │ │ └─┬ validate-npm-package-name@2.2.2 
      │ │   └── builtins@0.0.7 
      │ ├── nopt@3.0.6 
      │ ├─┬ npm@2.15.11 
      │ │ ├── abbrev@1.0.9 
      │ │ ├── ansi@0.3.1 
      │ │ ├── ansi-regex@2.0.0 
      │ │ ├── ansicolors@0.3.2 
      │ │ ├── ansistyles@0.1.3 
      │ │ ├── archy@1.0.0 
      │ │ ├── async-some@1.0.2 
      │ │ ├── block-stream@0.0.9 
      │ │ ├── char-spinner@1.0.1 
      │ │ ├── chmodr@1.0.2 
      │ │ ├── chownr@1.0.1 
      │ │ ├── cmd-shim@2.0.2 
      │ │ ├─┬ columnify@1.5.4 
      │ │ │ └─┬ wcwidth@1.0.0 
      │ │ │   └─┬ defaults@1.0.3 
      │ │ │     └── clone@1.0.2 
      │ │ ├─┬ config-chain@1.1.10 
      │ │ │ └── proto-list@1.2.4 
      │ │ ├─┬ dezalgo@1.0.3 
      │ │ │ └── asap@2.0.3 
      │ │ ├── editor@1.0.0 
      │ │ ├── fs-vacuum@1.2.9 
      │ │ ├─┬ fs-write-stream-atomic@1.0.8 
      │ │ │ └── iferr@0.1.5 
      │ │ ├── fstream@1.0.10 
      │ │ ├─┬ fstream-npm@1.1.1 
      │ │ │ └── fstream-ignore@1.0.5 
      │ │ ├── github-url-from-git@1.4.0 
      │ │ ├── github-url-from-username-repo@1.0.2 
      │ │ ├─┬ glob@7.0.6 
      │ │ │ ├── fs.realpath@1.0.0 
      │ │ │ └── path-is-absolute@1.0.0 
      │ │ ├── graceful-fs@4.1.6 
      │ │ ├── hosted-git-info@2.1.5 
      │ │ ├── imurmurhash@0.1.4 
      │ │ ├── inflight@1.0.5 
      │ │ ├── inherits@2.0.3 
      │ │ ├── ini@1.3.4 
      │ │ ├─┬ init-package-json@1.9.4 
      │ │ │ ├─┬ glob@6.0.4 
      │ │ │ │ └── path-is-absolute@1.0.0 
      │ │ │ └── promzard@0.3.0 
      │ │ ├── lockfile@1.0.1 
      │ │ ├─┬ lru-cache@4.0.1 
      │ │ │ ├── pseudomap@1.0.2 
      │ │ │ └── yallist@2.0.0 
      │ │ ├─┬ minimatch@3.0.3 
      │ │ │ └─┬ brace-expansion@1.1.6 
      │ │ │   ├── balanced-match@0.4.2 
      │ │ │   └── concat-map@0.0.1 
      │ │ ├─┬ mkdirp@0.5.1 
      │ │ │ └── minimist@0.0.8 
      │ │ ├─┬ node-gyp@3.4.0 
      │ │ │ └─┬ path-array@1.0.1 
      │ │ │   └─┬ array-index@1.0.0 
      │ │ │     ├─┬ debug@2.2.0 
      │ │ │     │ └── ms@0.7.1 
      │ │ │     └─┬ es6-symbol@3.1.0 
      │ │ │       ├── d@0.1.1 
      │ │ │       └─┬ es5-ext@0.10.12 
      │ │ │         └── es6-iterator@2.0.0 
      │ │ ├── nopt@3.0.6 
      │ │ ├── normalize-git-url@3.0.2 
      │ │ ├─┬ normalize-package-data@2.3.5 
      │ │ │ └─┬ is-builtin-module@1.0.0 
      │ │ │   └── builtin-modules@1.1.0 
      │ │ ├── npm-cache-filename@1.0.2 
      │ │ ├── npm-install-checks@1.0.7 
      │ │ ├── npm-package-arg@4.1.0 
      │ │ ├─┬ npm-registry-client@7.2.1 
      │ │ │ ├─┬ concat-stream@1.5.2 
      │ │ │ │ ├─┬ readable-stream@2.0.6 
      │ │ │ │ │ ├── core-util-is@1.0.2 
      │ │ │ │ │ ├── isarray@1.0.0 
      │ │ │ │ │ ├── process-nextick-args@1.0.7 
      │ │ │ │ │ ├── string_decoder@0.10.31 
      │ │ │ │ │ └── util-deprecate@1.0.2 
      │ │ │ │ └── typedarray@0.0.6 
      │ │ │ └── retry@0.10.0 
      │ │ ├── npm-user-validate@0.1.5 
      │ │ ├─┬ npmlog@2.0.4 
      │ │ │ ├─┬ are-we-there-yet@1.1.2 
      │ │ │ │ └── delegates@1.0.0 
      │ │ │ └─┬ gauge@1.2.7 
      │ │ │   ├── has-unicode@2.0.0 
      │ │ │   ├─┬ lodash.pad@4.4.0 
      │ │ │   │ ├── lodash._baseslice@4.0.0 
      │ │ │   │ ├── lodash._basetostring@4.12.0 
      │ │ │   │ └── lodash.tostring@4.1.4 
      │ │ │   ├── lodash.padend@4.5.0 
      │ │ │   └── lodash.padstart@4.5.0 
      │ │ ├── once@1.4.0 
      │ │ ├── opener@1.4.1 
      │ │ ├─┬ osenv@0.1.3 
      │ │ │ ├── os-homedir@1.0.0 
      │ │ │ └── os-tmpdir@1.0.1 
      │ │ ├── path-is-inside@1.0.1 
      │ │ ├─┬ read@1.0.7 
      │ │ │ └── mute-stream@0.0.5 
      │ │ ├─┬ read-installed@4.0.3 
      │ │ │ ├── debuglog@1.0.1 
      │ │ │ ├── readdir-scoped-modules@1.0.2 
      │ │ │ └── util-extend@1.0.1 
      │ │ ├─┬ read-package-json@2.0.4 
      │ │ │ ├─┬ glob@6.0.4 
      │ │ │ │ └── path-is-absolute@1.0.0 
      │ │ │ └─┬ json-parse-helpfulerror@1.0.3 
      │ │ │   └── jju@1.3.0 
      │ │ ├─┬ readable-stream@2.1.5 
      │ │ │ ├── buffer-shims@1.0.0 
      │ │ │ ├── core-util-is@1.0.2 
      │ │ │ ├── isarray@1.0.0 
      │ │ │ ├── process-nextick-args@1.0.7 
      │ │ │ ├── string_decoder@0.10.31 
      │ │ │ └── util-deprecate@1.0.2 
      │ │ ├── realize-package-specifier@3.0.1 
      │ │ ├─┬ request@2.74.0 
      │ │ │ ├── aws-sign2@0.6.0 
      │ │ │ ├── aws4@1.4.1 
      │ │ │ ├─┬ bl@1.1.2 
      │ │ │ │ └─┬ readable-stream@2.0.6 
      │ │ │ │   ├── core-util-is@1.0.2 
      │ │ │ │   ├── isarray@1.0.0 
      │ │ │ │   ├── process-nextick-args@1.0.7 
      │ │ │ │   ├── string_decoder@0.10.31 
      │ │ │ │   └── util-deprecate@1.0.2 
      │ │ │ ├── caseless@0.11.0 
      │ │ │ ├─┬ combined-stream@1.0.5 
      │ │ │ │ └── delayed-stream@1.0.0 
      │ │ │ ├── extend@3.0.0 
      │ │ │ ├── forever-agent@0.6.1 
      │ │ │ ├─┬ form-data@1.0.0-rc4 
      │ │ │ │ └── async@1.5.2 
      │ │ │ ├─┬ har-validator@2.0.6 
      │ │ │ │ ├─┬ chalk@1.1.3 
      │ │ │ │ │ ├── ansi-styles@2.2.1 
      │ │ │ │ │ ├── escape-string-regexp@1.0.5 
      │ │ │ │ │ ├── has-ansi@2.0.0 
      │ │ │ │ │ └── supports-color@2.0.0 
      │ │ │ │ ├─┬ commander@2.9.0 
      │ │ │ │ │ └── graceful-readlink@1.0.1 
      │ │ │ │ ├─┬ is-my-json-valid@2.13.1 
      │ │ │ │ │ ├── generate-function@2.0.0 
      │ │ │ │ │ ├─┬ generate-object-property@1.2.0 
      │ │ │ │ │ │ └── is-property@1.0.2 
      │ │ │ │ │ ├── jsonpointer@2.0.0 
      │ │ │ │ │ └── xtend@4.0.1 
      │ │ │ │ └─┬ pinkie-promise@2.0.1 
      │ │ │ │   └── pinkie@2.0.4 
      │ │ │ ├─┬ hawk@3.1.3 
      │ │ │ │ ├── boom@2.10.1 
      │ │ │ │ ├── cryptiles@2.0.5 
      │ │ │ │ ├── hoek@2.16.3 
      │ │ │ │ └── sntp@1.0.9 
      │ │ │ ├─┬ http-signature@1.1.1 
      │ │ │ │ ├── assert-plus@0.2.0 
      │ │ │ │ ├─┬ jsprim@1.3.0 
      │ │ │ │ │ ├── extsprintf@1.0.2 
      │ │ │ │ │ ├── json-schema@0.2.2 
      │ │ │ │ │ └── verror@1.3.6 
      │ │ │ │ └─┬ sshpk@1.9.2 
      │ │ │ │   ├── asn1@0.2.3 
      │ │ │ │   ├── assert-plus@1.0.0 
      │ │ │ │   ├── dashdash@1.14.0 
      │ │ │ │   ├── ecc-jsbn@0.1.1 
      │ │ │ │   ├── getpass@0.1.6 
      │ │ │ │   ├── jodid25519@1.0.2 
      │ │ │ │   ├── jsbn@0.1.0 
      │ │ │ │   └── tweetnacl@0.13.3 
      │ │ │ ├── is-typedarray@1.0.0 
      │ │ │ ├── isstream@0.1.2 
      │ │ │ ├── json-stringify-safe@5.0.1 
      │ │ │ ├─┬ mime-types@2.1.11 
      │ │ │ │ └── mime-db@1.23.0 
      │ │ │ ├── node-uuid@1.4.7 
      │ │ │ ├── oauth-sign@0.8.2 
      │ │ │ ├── qs@6.2.1 
      │ │ │ ├── stringstream@0.0.5 
      │ │ │ ├── tough-cookie@2.3.1 
      │ │ │ └── tunnel-agent@0.4.3 
      │ │ ├── retry@0.10.0 
      │ │ ├── rimraf@2.5.4 
      │ │ ├── semver@5.1.0 
      │ │ ├─┬ sha@2.0.1 
      │ │ │ └─┬ readable-stream@2.0.2 
      │ │ │   ├── core-util-is@1.0.1 
      │ │ │   ├── isarray@0.0.1 
      │ │ │   ├── process-nextick-args@1.0.3 
      │ │ │   ├── string_decoder@0.10.31 
      │ │ │   └── util-deprecate@1.0.1 
      │ │ ├── slide@1.1.6 
      │ │ ├── sorted-object@2.0.0 
      │ │ ├── spdx-license-ids@1.2.2 
      │ │ ├── strip-ansi@3.0.1 
      │ │ ├── tar@2.2.1 
      │ │ ├── text-table@0.2.0 
      │ │ ├── uid-number@0.0.6 
      │ │ ├── umask@1.1.0 
      │ │ ├─┬ validate-npm-package-license@3.0.1 
      │ │ │ ├── spdx-correct@1.0.2 
      │ │ │ └─┬ spdx-expression-parse@1.0.2 
      │ │ │   └── spdx-exceptions@1.0.4 
      │ │ ├─┬ validate-npm-package-name@2.2.2 
      │ │ │ └── builtins@0.0.7 
      │ │ ├─┬ which@1.2.11 
      │ │ │ └── isexe@1.1.2 
      │ │ ├── wrappy@1.0.2 
      │ │ └── write-file-atomic@1.1.4 
      │ ├── opener@1.4.1 
      │ ├── properties-parser@0.2.3 
      │ ├─┬ request@2.47.0 
      │ │ ├── aws-sign2@0.5.0 
      │ │ ├─┬ bl@0.9.5 
      │ │ │ └── readable-stream@1.0.34 
      │ │ ├── caseless@0.6.0 
      │ │ ├─┬ combined-stream@0.0.7 
      │ │ │ └── delayed-stream@0.0.5 
      │ │ ├── forever-agent@0.5.2 
      │ │ ├─┬ form-data@0.1.4 
      │ │ │ ├── async@0.9.2 
      │ │ │ └── mime@1.2.11 
      │ │ ├─┬ hawk@1.1.1 
      │ │ │ ├── boom@0.4.2 
      │ │ │ ├── cryptiles@0.2.2 
      │ │ │ ├── hoek@0.9.1 
      │ │ │ └── sntp@0.2.4 
      │ │ ├─┬ http-signature@0.10.1 
      │ │ │ ├── asn1@0.1.11 
      │ │ │ ├── assert-plus@0.1.5 
      │ │ │ └── ctype@0.5.3 
      │ │ ├── json-stringify-safe@5.0.1 
      │ │ ├── mime-types@1.0.2 
      │ │ ├── node-uuid@1.4.7 
      │ │ ├── oauth-sign@0.4.0 
      │ │ ├── qs@2.3.3 
      │ │ ├── stringstream@0.0.5 
      │ │ └── tunnel-agent@0.4.3 
      │ ├── semver@4.3.6 
      │ ├── shelljs@0.3.0 
      │ ├─┬ tar@1.0.2 
      │ │ ├── block-stream@0.0.9 
      │ │ └─┬ fstream@1.0.10 
      │ │   └─┬ rimraf@2.5.4 
      │ │     └── glob@7.1.1 
      │ ├── unorm@1.3.3 
      │ ├── valid-identifier@0.0.1 
      │ └─┬ xcode@0.8.9 
      │   ├── pegjs@0.9.0 
      │   └─┬ simple-plist@0.1.4 
      │     ├─┬ bplist-creator@0.0.4 
      │     │ └── stream-buffers@0.2.6 
      │     └── bplist-parser@0.0.6 
      ├─┬ insight@0.8.4 
      │ ├── async@1.5.2 
      │ ├─┬ chalk@1.1.3 
      │ │ ├── ansi-styles@2.2.1 
      │ │ ├── escape-string-regexp@1.0.5 
      │ │ ├── has-ansi@2.0.0 
      │ │ ├── strip-ansi@3.0.1 
      │ │ └── supports-color@2.0.0 
      │ ├─┬ configstore@1.4.0 
      │ │ ├── graceful-fs@4.1.11 
      │ │ ├─┬ mkdirp@0.5.1 
      │ │ │ └── minimist@0.0.8 
      │ │ ├── uuid@2.0.3 
      │ │ ├─┬ write-file-atomic@1.3.1 
      │ │ │ ├── imurmurhash@0.1.4 
      │ │ │ └── slide@1.1.6 
      │ │ └── xdg-basedir@2.0.0 
      │ ├─┬ inquirer@0.10.1 
      │ │ ├── ansi-escapes@1.4.0 
      │ │ ├── ansi-regex@2.1.1 
      │ │ ├─┬ cli-cursor@1.0.2 
      │ │ │ └─┬ restore-cursor@1.0.1 
      │ │ │   ├── exit-hook@1.1.1 
      │ │ │   └── onetime@1.1.0 
      │ │ ├── cli-width@1.1.1 
      │ │ ├── figures@1.7.0 
      │ │ ├── lodash@3.10.1 
      │ │ ├─┬ readline2@1.0.1 
      │ │ │ ├── code-point-at@1.1.0 
      │ │ │ ├── is-fullwidth-code-point@1.0.0 
      │ │ │ └── mute-stream@0.0.5 
      │ │ ├── run-async@0.1.0 
      │ │ ├── rx-lite@3.1.2 
      │ │ └── through@2.3.8 
      │ ├─┬ lodash.debounce@3.1.1 
      │ │ └── lodash._getnative@3.9.1 
      │ ├── object-assign@4.1.1 
      │ ├─┬ os-name@1.0.3 
      │ │ ├─┬ osx-release@1.1.0 
      │ │ │ └── minimist@1.2.0 
      │ │ └── win-release@1.1.1 
      │ ├─┬ request@2.79.0 
      │ │ ├── aws-sign2@0.6.0 
      │ │ ├── aws4@1.5.0 
      │ │ ├── caseless@0.11.0 
      │ │ ├─┬ combined-stream@1.0.5 
      │ │ │ └── delayed-stream@1.0.0 
      │ │ ├── extend@3.0.0 
      │ │ ├── forever-agent@0.6.1 
      │ │ ├─┬ form-data@2.1.2 
      │ │ │ └── asynckit@0.4.0 
      │ │ ├─┬ har-validator@2.0.6 
      │ │ │ ├─┬ commander@2.9.0 
      │ │ │ │ └── graceful-readlink@1.0.1 
      │ │ │ ├─┬ is-my-json-valid@2.15.0 
      │ │ │ │ ├── generate-function@2.0.0 
      │ │ │ │ ├─┬ generate-object-property@1.2.0 
      │ │ │ │ │ └── is-property@1.0.2 
      │ │ │ │ └── jsonpointer@4.0.1 
      │ │ │ └─┬ pinkie-promise@2.0.1 
      │ │ │   └── pinkie@2.0.4 
      │ │ ├─┬ hawk@3.1.3 
      │ │ │ ├── boom@2.10.1 
      │ │ │ ├── cryptiles@2.0.5 
      │ │ │ ├── hoek@2.16.3 
      │ │ │ └── sntp@1.0.9 
      │ │ ├─┬ http-signature@1.1.1 
      │ │ │ ├── assert-plus@0.2.0 
      │ │ │ ├─┬ jsprim@1.3.1 
      │ │ │ │ ├── extsprintf@1.0.2 
      │ │ │ │ ├── json-schema@0.2.3 
      │ │ │ │ └── verror@1.3.6 
      │ │ │ └─┬ sshpk@1.10.2 
      │ │ │   ├── asn1@0.2.3 
      │ │ │   ├── assert-plus@1.0.0 
      │ │ │   ├── bcrypt-pbkdf@1.0.0 
      │ │ │   ├─┬ dashdash@1.14.1 
      │ │ │   │ └── assert-plus@1.0.0 
      │ │ │   ├── ecc-jsbn@0.1.1 
      │ │ │   ├─┬ getpass@0.1.6 
      │ │ │   │ └── assert-plus@1.0.0 
      │ │ │   ├── jodid25519@1.0.2 
      │ │ │   ├── jsbn@0.1.0 
      │ │ │   └── tweetnacl@0.14.5 
      │ │ ├── is-typedarray@1.0.0 
      │ │ ├── isstream@0.1.2 
      │ │ ├─┬ mime-types@2.1.14 
      │ │ │ └── mime-db@1.26.0 
      │ │ ├── oauth-sign@0.8.2 
      │ │ └── qs@6.3.0 
      │ ├─┬ tough-cookie@2.3.2 
      │ │ └── punycode@1.4.1 
      │ └── uuid@3.0.1 
      ├─┬ nopt@3.0.1 
      │ └── abbrev@1.0.9 
      ├── q@1.0.1 
      ├── underscore@1.7.0 
      └─┬ update-notifier@0.5.0 
        ├── is-npm@1.0.0 
        ├─┬ latest-version@1.0.1 
        │ └─┬ package-json@1.2.0 
        │   ├─┬ got@3.3.1 
        │   │ ├─┬ duplexify@3.5.0 
        │   │ │ ├─┬ end-of-stream@1.0.0 
        │   │ │ │ └── once@1.3.3 
        │   │ │ └── stream-shift@1.0.0 
        │   │ ├── infinity-agent@2.0.3 
        │   │ ├── is-redirect@1.0.0 
        │   │ ├── is-stream@1.1.0 
        │   │ ├── lowercase-keys@1.0.0 
        │   │ ├── nested-error-stacks@1.0.2 
        │   │ ├── object-assign@3.0.0 
        │   │ ├── prepend-http@1.0.4 
        │   │ ├── read-all-stream@3.1.0 
        │   │ └── timed-out@2.0.0 
        │   └─┬ registry-url@3.1.0 
        │     └─┬ rc@1.1.6 
        │       ├── deep-extend@0.4.1 
        │       ├── ini@1.3.4 
        │       └── strip-json-comments@1.0.4 
        ├─┬ repeating@1.1.3 
        │ └─┬ is-finite@1.0.2 
        │   └── number-is-nan@1.0.1 
        ├── semver-diff@2.1.0 
        └── string-length@1.0.1 
    

   0 likes

Suggested Read