FPGAwars / icestudio

:snowflake: Visual editor for open FPGA boards
https://icestudio.io
GNU General Public License v2.0
1.68k stars 243 forks source link

Error: angular is not installed. #290

Closed bogdanr closed 4 years ago

bogdanr commented 5 years ago

When I run npm start I receive this error:

nimblex:/mnt/sda1/icestudio# npm start

> icestudio@0.4.0-dev start /mnt/sda1/icestudio
> grunt serve

Running "nggettext_compile:all" (nggettext_compile) task

Running "watch:scripts" (watch) task
Waiting...
Running "wiredep:task" (wiredep) task
Warning: Error: angular is not installed. Try running `bower install` or remove the component from your bower.json file. Use --force to continue.

Aborted due to warnings.
Completed in 1.252s at Thu Dec 13 2018 21:05:50 GMT+0200 (EET) - Waiting...

This is my npm list:

nimblex:/mnt/sda1/icestudio# npm list
icestudio@0.4.0-dev /mnt/sda1/icestudio
├── angular@1.7.5
├── bower@1.8.4
├─┬ extract-zip@1.6.7
│ ├─┬ concat-stream@1.6.2
│ │ ├── buffer-from@1.1.1
│ │ ├── inherits@2.0.3
│ │ ├─┬ 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
│ │ └── typedarray@0.0.6
│ ├─┬ debug@2.6.9
│ │ └── ms@2.0.0
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ └─┬ yauzl@2.4.1
│   └─┬ fd-slicer@1.0.1
│     └── pend@1.2.0
├─┬ UNMET PEER DEPENDENCY grunt@1.0.3
│ ├── coffeescript@1.10.0
│ ├─┬ dateformat@1.0.12
│ │ ├── get-stdin@4.0.1
│ │ └─┬ meow@3.7.0
│ │   ├─┬ camelcase-keys@2.1.0
│ │   │ ├── camelcase@2.1.1
│ │   │ └── map-obj@1.0.1 deduped
│ │   ├── decamelize@1.2.0 deduped
│ │   ├─┬ loud-rejection@1.6.0
│ │   │ ├─┬ currently-unhandled@0.4.1
│ │   │ │ └── array-find-index@1.0.2
│ │   │ └── signal-exit@3.0.2
│ │   ├── map-obj@1.0.1
│ │   ├── minimist@1.2.0
│ │   ├─┬ normalize-package-data@2.4.0
│ │   │ ├── hosted-git-info@2.7.1
│ │   │ ├─┬ is-builtin-module@1.0.0
│ │   │ │ └── builtin-modules@1.1.1
│ │   │ ├── semver@5.6.0 deduped
│ │   │ └─┬ validate-npm-package-license@3.0.4
│ │   │   ├─┬ spdx-correct@3.1.0
│ │   │   │ ├── spdx-expression-parse@3.0.0 deduped
│ │   │   │ └── spdx-license-ids@3.0.2
│ │   │   └─┬ spdx-expression-parse@3.0.0
│ │   │     ├── spdx-exceptions@2.2.0
│ │   │     └── spdx-license-ids@3.0.2 deduped
│ │   ├── object-assign@4.1.1 deduped
│ │   ├─┬ read-pkg-up@1.0.1
│ │   │ ├── find-up@1.1.2 deduped
│ │   │ └─┬ read-pkg@1.1.0
│ │   │   ├─┬ load-json-file@1.1.0
│ │   │   │ ├── graceful-fs@4.1.15 deduped
│ │   │   │ ├─┬ parse-json@2.2.0
│ │   │   │ │ └─┬ error-ex@1.3.2
│ │   │   │ │   └── is-arrayish@0.2.1
│ │   │   │ ├── pify@2.3.0 deduped
│ │   │   │ ├── pinkie-promise@2.0.1 deduped
│ │   │   │ └── strip-bom@2.0.0 deduped
│ │   │   ├── normalize-package-data@2.4.0 deduped
│ │   │   └─┬ path-type@1.1.0
│ │   │     ├── graceful-fs@4.1.15 deduped
│ │   │     ├── pify@2.3.0 deduped
│ │   │     └── pinkie-promise@2.0.1 deduped
│ │   ├─┬ redent@1.0.0
│ │   │ ├─┬ indent-string@2.1.0
│ │   │ │ └── repeating@2.0.1 deduped
│ │   │ └─┬ strip-indent@1.0.1
│ │   │   └── get-stdin@4.0.1 deduped
│ │   └── trim-newlines@1.0.0
│ ├── eventemitter2@0.4.14
│ ├── exit@0.1.2
│ ├─┬ findup-sync@0.3.0
│ │ └─┬ glob@5.0.15
│ │   ├── inflight@1.0.6 deduped
│ │   ├── inherits@2.0.3 deduped
│ │   ├── minimatch@3.0.4 deduped
│ │   ├── once@1.4.0 deduped
│ │   └── path-is-absolute@1.0.1 deduped
│ ├─┬ glob@7.0.6
│ │ ├── fs.realpath@1.0.0
│ │ ├─┬ inflight@1.0.6
│ │ │ ├── once@1.4.0 deduped
│ │ │ └── wrappy@1.0.2
│ │ ├── inherits@2.0.3 deduped
│ │ ├── minimatch@3.0.4 deduped
│ │ ├─┬ once@1.4.0
│ │ │ └── wrappy@1.0.2 deduped
│ │ └── path-is-absolute@1.0.1 deduped
│ ├─┬ grunt-cli@1.2.0
│ │ ├── findup-sync@0.3.0 deduped
│ │ ├── grunt-known-options@1.1.1 deduped
│ │ ├── nopt@3.0.6 deduped
│ │ └── resolve@1.1.7
│ ├── grunt-known-options@1.1.1
│ ├─┬ grunt-legacy-log@2.0.0
│ │ ├── colors@1.1.2
│ │ ├─┬ grunt-legacy-log-utils@2.0.1
│ │ │ ├─┬ chalk@2.4.1
│ │ │ │ ├─┬ ansi-styles@3.2.1
│ │ │ │ │ └─┬ color-convert@1.9.3
│ │ │ │ │   └── color-name@1.1.3
│ │ │ │ ├── escape-string-regexp@1.0.5 deduped
│ │ │ │ └─┬ supports-color@5.5.0
│ │ │ │   └── has-flag@3.0.0
│ │ │ └── lodash@4.17.11 deduped
│ │ ├── hooker@0.2.3 deduped
│ │ └── lodash@4.17.11 deduped
│ ├─┬ grunt-legacy-util@1.1.1
│ │ ├── async@1.5.2 deduped
│ │ ├── exit@0.1.2 deduped
│ │ ├── getobject@0.1.0
│ │ ├── hooker@0.2.3 deduped
│ │ ├── lodash@4.17.11 deduped
│ │ ├─┬ underscore.string@3.3.5
│ │ │ ├── sprintf-js@1.1.2
│ │ │ └── util-deprecate@1.0.2 deduped
│ │ └─┬ which@1.3.1
│ │   └── isexe@2.0.0
│ ├─┬ iconv-lite@0.4.24
│ │ └── safer-buffer@2.1.2
│ ├─┬ js-yaml@3.5.5
│ │ ├─┬ argparse@1.0.10
│ │ │ └── sprintf-js@1.0.3
│ │ └── esprima@2.7.3
│ ├─┬ minimatch@3.0.4
│ │ └─┬ brace-expansion@1.1.11
│ │   ├── balanced-match@1.0.0
│ │   └── concat-map@0.0.1
│ ├── mkdirp@0.5.1 deduped
│ ├─┬ nopt@3.0.6
│ │ └── abbrev@1.1.1
│ ├── path-is-absolute@1.0.1
│ └─┬ rimraf@2.6.2
│   └── glob@7.0.6 deduped
├─┬ grunt-angular-gettext@2.3.14
│ └─┬ angular-gettext-tools@2.3.14
│   ├── babylon@6.18.0
│   ├── binary-search@1.3.4
│   ├─┬ cheerio@0.19.0
│   │ ├─┬ css-select@1.0.0
│   │ │ ├── boolbase@1.0.0
│   │ │ ├── css-what@1.0.0
│   │ │ ├─┬ domutils@1.4.3
│   │ │ │ └── domelementtype@1.3.1 deduped
│   │ │ └─┬ nth-check@1.0.2
│   │ │   └── boolbase@1.0.0 deduped
│   │ ├─┬ dom-serializer@0.1.0
│   │ │ ├── domelementtype@1.1.3
│   │ │ └── entities@1.1.2 deduped
│   │ ├── entities@1.1.2
│   │ ├── htmlparser2@3.8.3 deduped
│   │ └── lodash@3.10.1
│   ├── lodash@4.17.11 deduped
│   ├── pofile@1.0.11
│   ├── typescript@2.3.4
│   └─┬ typescript-eslint-parser@3.0.0
│     ├── lodash.unescape@4.0.1
│     └── semver@5.3.0
├─┬ grunt-appimage@0.6.0
│ ├─┬ fs-extra@2.1.2
│ │ ├── graceful-fs@4.1.15
│ │ └─┬ jsonfile@2.4.0
│ │   └── graceful-fs@4.1.15 deduped
│ └─┬ temporary@0.0.8
│   └── package@1.0.1
├─┬ grunt-cli@1.3.2
│ ├── grunt-known-options@1.1.1 deduped
│ ├── interpret@1.1.0
│ ├─┬ liftoff@2.5.0
│ │ ├── extend@3.0.2
│ │ ├─┬ 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
│ │ │ │ ├─┬ braces@2.3.2
│ │ │ │ │ ├── arr-flatten@1.1.0
│ │ │ │ │ ├── array-unique@0.3.2 deduped
│ │ │ │ │ ├─┬ extend-shallow@2.0.1
│ │ │ │ │ │ └── is-extendable@0.1.1
│ │ │ │ │ ├─┬ fill-range@4.0.0
│ │ │ │ │ │ ├─┬ extend-shallow@2.0.1
│ │ │ │ │ │ │ └── is-extendable@0.1.1 deduped
│ │ │ │ │ │ ├─┬ is-number@3.0.0
│ │ │ │ │ │ │ └─┬ kind-of@3.2.2
│ │ │ │ │ │ │   └── is-buffer@1.1.6 deduped
│ │ │ │ │ │ ├── repeat-string@1.6.1 deduped
│ │ │ │ │ │ └─┬ to-regex-range@2.1.1
│ │ │ │ │ │   ├── is-number@3.0.0 deduped
│ │ │ │ │ │   └── repeat-string@1.6.1 deduped
│ │ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ │ ├── repeat-element@1.1.3
│ │ │ │ │ ├── snapdragon@0.8.2 deduped
│ │ │ │ │ ├─┬ snapdragon-node@2.1.1
│ │ │ │ │ │ ├─┬ define-property@1.0.0
│ │ │ │ │ │ │ └─┬ is-descriptor@1.0.2
│ │ │ │ │ │ │   ├─┬ is-accessor-descriptor@1.0.0
│ │ │ │ │ │ │   │ └── kind-of@6.0.2 deduped
│ │ │ │ │ │ │   ├─┬ is-data-descriptor@1.0.0
│ │ │ │ │ │ │   │ └── kind-of@6.0.2 deduped
│ │ │ │ │ │ │   └── kind-of@6.0.2 deduped
│ │ │ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ │ │ └─┬ snapdragon-util@3.0.1
│ │ │ │ │ │   └─┬ kind-of@3.2.2
│ │ │ │ │ │     └── is-buffer@1.1.6 deduped
│ │ │ │ │ ├─┬ split-string@3.1.0
│ │ │ │ │ │ └── extend-shallow@3.0.2 deduped
│ │ │ │ │ └── to-regex@3.0.2 deduped
│ │ │ │ ├─┬ define-property@2.0.2
│ │ │ │ │ ├─┬ is-descriptor@1.0.2
│ │ │ │ │ │ ├─┬ is-accessor-descriptor@1.0.0
│ │ │ │ │ │ │ └── kind-of@6.0.2 deduped
│ │ │ │ │ │ ├─┬ is-data-descriptor@1.0.0
│ │ │ │ │ │ │ └── kind-of@6.0.2 deduped
│ │ │ │ │ │ └── kind-of@6.0.2 deduped
│ │ │ │ │ └── isobject@3.0.1 deduped
│ │ │ │ ├─┬ extend-shallow@3.0.2
│ │ │ │ │ ├── assign-symbols@1.0.0
│ │ │ │ │ └─┬ is-extendable@1.0.1
│ │ │ │ │   └── is-plain-object@2.0.4 deduped
│ │ │ │ ├─┬ extglob@2.0.4
│ │ │ │ │ ├── array-unique@0.3.2 deduped
│ │ │ │ │ ├─┬ define-property@1.0.0
│ │ │ │ │ │ └─┬ is-descriptor@1.0.2
│ │ │ │ │ │   ├─┬ is-accessor-descriptor@1.0.0
│ │ │ │ │ │   │ └── kind-of@6.0.2 deduped
│ │ │ │ │ │   ├─┬ is-data-descriptor@1.0.0
│ │ │ │ │ │   │ └── kind-of@6.0.2 deduped
│ │ │ │ │ │   └── kind-of@6.0.2 deduped
│ │ │ │ │ ├─┬ expand-brackets@2.1.4
│ │ │ │ │ │ ├── debug@2.6.9 deduped
│ │ │ │ │ │ ├─┬ define-property@0.2.5
│ │ │ │ │ │ │ └── is-descriptor@0.1.6 deduped
│ │ │ │ │ │ ├─┬ extend-shallow@2.0.1
│ │ │ │ │ │ │ └── is-extendable@0.1.1 deduped
│ │ │ │ │ │ ├── posix-character-classes@0.1.1
│ │ │ │ │ │ ├── regex-not@1.0.2 deduped
│ │ │ │ │ │ ├── snapdragon@0.8.2 deduped
│ │ │ │ │ │ └── to-regex@3.0.2 deduped
│ │ │ │ │ ├─┬ extend-shallow@2.0.1
│ │ │ │ │ │ └── is-extendable@0.1.1 deduped
│ │ │ │ │ ├── fragment-cache@0.2.1 deduped
│ │ │ │ │ ├── regex-not@1.0.2 deduped
│ │ │ │ │ ├── snapdragon@0.8.2 deduped
│ │ │ │ │ └── to-regex@3.0.2 deduped
│ │ │ │ ├─┬ fragment-cache@0.2.1
│ │ │ │ │ └── map-cache@0.2.2 deduped
│ │ │ │ ├── kind-of@6.0.2
│ │ │ │ ├─┬ nanomatch@1.2.13
│ │ │ │ │ ├── arr-diff@4.0.0 deduped
│ │ │ │ │ ├── array-unique@0.3.2 deduped
│ │ │ │ │ ├── define-property@2.0.2 deduped
│ │ │ │ │ ├── extend-shallow@3.0.2 deduped
│ │ │ │ │ ├── fragment-cache@0.2.1 deduped
│ │ │ │ │ ├── is-windows@1.0.2 deduped
│ │ │ │ │ ├── kind-of@6.0.2 deduped
│ │ │ │ │ ├── object.pick@1.3.0 deduped
│ │ │ │ │ ├── regex-not@1.0.2 deduped
│ │ │ │ │ ├── snapdragon@0.8.2 deduped
│ │ │ │ │ └── to-regex@3.0.2 deduped
│ │ │ │ ├── object.pick@1.3.0 deduped
│ │ │ │ ├─┬ regex-not@1.0.2
│ │ │ │ │ ├── extend-shallow@3.0.2 deduped
│ │ │ │ │ └─┬ 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 deduped
│ │ │ │ │ │ │ │ └─┬ object-visit@1.0.1
│ │ │ │ │ │ │ │   └── isobject@3.0.1 deduped
│ │ │ │ │ │ │ ├── component-emitter@1.2.1 deduped
│ │ │ │ │ │ │ ├── get-value@2.0.6
│ │ │ │ │ │ │ ├─┬ has-value@1.0.0
│ │ │ │ │ │ │ │ ├── get-value@2.0.6 deduped
│ │ │ │ │ │ │ │ ├─┬ has-values@1.0.0
│ │ │ │ │ │ │ │ │ ├── is-number@3.0.0 deduped
│ │ │ │ │ │ │ │ │ └─┬ kind-of@4.0.0
│ │ │ │ │ │ │ │ │   └── is-buffer@1.1.6 deduped
│ │ │ │ │ │ │ │ └── isobject@3.0.1 deduped
│ │ │ │ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ │ │ │ ├─┬ set-value@2.0.0
│ │ │ │ │ │ │ │ ├─┬ extend-shallow@2.0.1
│ │ │ │ │ │ │ │ │ └── is-extendable@0.1.1 deduped
│ │ │ │ │ │ │ │ ├── is-extendable@0.1.1 deduped
│ │ │ │ │ │ │ │ ├── is-plain-object@2.0.4 deduped
│ │ │ │ │ │ │ │ └── split-string@3.1.0 deduped
│ │ │ │ │ │ │ ├─┬ to-object-path@0.3.0
│ │ │ │ │ │ │ │ └─┬ kind-of@3.2.2
│ │ │ │ │ │ │ │   └── is-buffer@1.1.6 deduped
│ │ │ │ │ │ │ ├─┬ union-value@1.0.0
│ │ │ │ │ │ │ │ ├── arr-union@3.1.0 deduped
│ │ │ │ │ │ │ │ ├── get-value@2.0.6 deduped
│ │ │ │ │ │ │ │ ├── is-extendable@0.1.1 deduped
│ │ │ │ │ │ │ │ └─┬ set-value@0.4.3
│ │ │ │ │ │ │ │   ├─┬ extend-shallow@2.0.1
│ │ │ │ │ │ │ │   │ └── is-extendable@0.1.1 deduped
│ │ │ │ │ │ │ │   ├── is-extendable@0.1.1 deduped
│ │ │ │ │ │ │ │   ├── is-plain-object@2.0.4 deduped
│ │ │ │ │ │ │ │   └── to-object-path@0.3.0 deduped
│ │ │ │ │ │ │ └─┬ unset-value@1.0.0
│ │ │ │ │ │ │   ├─┬ has-value@0.3.1
│ │ │ │ │ │ │   │ ├── get-value@2.0.6 deduped
│ │ │ │ │ │ │   │ ├── has-values@0.1.4
│ │ │ │ │ │ │   │ └─┬ isobject@2.1.0
│ │ │ │ │ │ │   │   └── isarray@1.0.0
│ │ │ │ │ │ │   └── isobject@3.0.1 deduped
│ │ │ │ │ │ ├─┬ class-utils@0.3.6
│ │ │ │ │ │ │ ├── arr-union@3.1.0
│ │ │ │ │ │ │ ├─┬ define-property@0.2.5
│ │ │ │ │ │ │ │ └── is-descriptor@0.1.6 deduped
│ │ │ │ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ │ │ │ └─┬ static-extend@0.1.2
│ │ │ │ │ │ │   ├─┬ define-property@0.2.5
│ │ │ │ │ │ │   │ └── is-descriptor@0.1.6 deduped
│ │ │ │ │ │ │   └─┬ object-copy@0.1.0
│ │ │ │ │ │ │     ├── copy-descriptor@0.1.1
│ │ │ │ │ │ │     ├─┬ define-property@0.2.5
│ │ │ │ │ │ │     │ └── is-descriptor@0.1.6 deduped
│ │ │ │ │ │ │     └─┬ kind-of@3.2.2
│ │ │ │ │ │ │       └── is-buffer@1.1.6 deduped
│ │ │ │ │ │ ├── component-emitter@1.2.1
│ │ │ │ │ │ ├─┬ define-property@1.0.0
│ │ │ │ │ │ │ └─┬ is-descriptor@1.0.2
│ │ │ │ │ │ │   ├─┬ is-accessor-descriptor@1.0.0
│ │ │ │ │ │ │   │ └── kind-of@6.0.2 deduped
│ │ │ │ │ │ │   ├─┬ is-data-descriptor@1.0.0
│ │ │ │ │ │ │   │ └── kind-of@6.0.2 deduped
│ │ │ │ │ │ │   └── kind-of@6.0.2 deduped
│ │ │ │ │ │ ├── isobject@3.0.1 deduped
│ │ │ │ │ │ ├─┬ mixin-deep@1.3.1
│ │ │ │ │ │ │ ├── for-in@1.0.2 deduped
│ │ │ │ │ │ │ └─┬ is-extendable@1.0.1
│ │ │ │ │ │ │   └── is-plain-object@2.0.4 deduped
│ │ │ │ │ │ └── pascalcase@0.1.1
│ │ │ │ │ ├── debug@2.6.9 deduped
│ │ │ │ │ ├─┬ define-property@0.2.5
│ │ │ │ │ │ └─┬ is-descriptor@0.1.6
│ │ │ │ │ │   ├─┬ is-accessor-descriptor@0.1.6
│ │ │ │ │ │   │ └─┬ kind-of@3.2.2
│ │ │ │ │ │   │   └── is-buffer@1.1.6 deduped
│ │ │ │ │ │   ├─┬ is-data-descriptor@0.1.4
│ │ │ │ │ │   │ └─┬ kind-of@3.2.2
│ │ │ │ │ │   │   └── is-buffer@1.1.6 deduped
│ │ │ │ │ │   └── kind-of@5.1.0
│ │ │ │ │ ├─┬ extend-shallow@2.0.1
│ │ │ │ │ │ └── is-extendable@0.1.1 deduped
│ │ │ │ │ ├── map-cache@0.2.2 deduped
│ │ │ │ │ ├── source-map@0.5.7 deduped
│ │ │ │ │ ├─┬ 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
│ │ │ │ │ └── use@3.1.1
│ │ │ │ └─┬ to-regex@3.0.2
│ │ │ │   ├── define-property@2.0.2 deduped
│ │ │ │   ├── extend-shallow@3.0.2 deduped
│ │ │ │   ├── regex-not@1.0.2 deduped
│ │ │ │   └── safe-regex@1.1.0 deduped
│ │ │ └─┬ resolve-dir@1.0.1
│ │ │   ├── expand-tilde@2.0.2 deduped
│ │ │   └─┬ global-modules@1.0.0
│ │ │     ├─┬ global-prefix@1.0.2
│ │ │     │ ├── expand-tilde@2.0.2 deduped
│ │ │     │ ├── homedir-polyfill@1.0.1 deduped
│ │ │     │ ├── ini@1.3.5 deduped
│ │ │     │ ├── is-windows@1.0.2 deduped
│ │ │     │ └── which@1.3.1 deduped
│ │ │     ├── is-windows@1.0.2 deduped
│ │ │     └── resolve-dir@1.0.1 deduped
│ │ ├─┬ fined@1.1.1
│ │ │ ├─┬ expand-tilde@2.0.2
│ │ │ │ └── homedir-polyfill@1.0.1 deduped
│ │ │ ├── is-plain-object@2.0.4 deduped
│ │ │ ├─┬ object.defaults@1.1.0
│ │ │ │ ├── array-each@1.0.1
│ │ │ │ ├── array-slice@1.1.0
│ │ │ │ ├── for-own@1.0.0 deduped
│ │ │ │ └── isobject@3.0.1 deduped
│ │ │ ├─┬ object.pick@1.3.0
│ │ │ │ └── isobject@3.0.1 deduped
│ │ │ └─┬ 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
│ │ │   │ └── is-windows@1.0.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
│ │ │   └── kind-of@6.0.2 deduped
│ │ ├─┬ rechoir@0.6.2
│ │ │ └── resolve@1.1.7 deduped
│ │ └── resolve@1.1.7 deduped
│ ├─┬ nopt@4.0.1
│ │ ├── abbrev@1.1.1 deduped
│ │ └─┬ osenv@0.1.5
│ │   ├── os-homedir@1.0.2
│ │   └── os-tmpdir@1.0.2
│ └─┬ v8flags@3.1.1
│   └─┬ homedir-polyfill@1.0.1
│     └── parse-passwd@1.0.0
├─┬ grunt-contrib-clean@1.1.0
│ ├── async@1.5.2
│ └── rimraf@2.6.2 deduped
├─┬ grunt-contrib-compress@1.4.3
│ ├─┬ archiver@1.3.0
│ │ ├─┬ archiver-utils@1.3.0
│ │ │ ├── glob@7.0.6 deduped
│ │ │ ├── graceful-fs@4.1.15 deduped
│ │ │ ├─┬ lazystream@1.0.0
│ │ │ │ └─┬ readable-stream@2.3.6
│ │ │ │   ├── core-util-is@1.0.2 deduped
│ │ │ │   ├── inherits@2.0.3 deduped
│ │ │ │   ├── isarray@1.0.0
│ │ │ │   ├── process-nextick-args@2.0.0 deduped
│ │ │ │   ├── safe-buffer@5.1.2 deduped
│ │ │ │   ├─┬ string_decoder@1.1.1
│ │ │ │   │ └── safe-buffer@5.1.2 deduped
│ │ │ │   └── util-deprecate@1.0.2 deduped
│ │ │ ├── lodash@4.17.11 deduped
│ │ │ ├─┬ normalize-path@2.1.1
│ │ │ │ └── remove-trailing-separator@1.1.0
│ │ │ └─┬ readable-stream@2.3.6
│ │ │   ├── core-util-is@1.0.2 deduped
│ │ │   ├── inherits@2.0.3 deduped
│ │ │   ├── isarray@1.0.0
│ │ │   ├── process-nextick-args@2.0.0 deduped
│ │ │   ├── safe-buffer@5.1.2 deduped
│ │ │   ├─┬ string_decoder@1.1.1
│ │ │   │ └── safe-buffer@5.1.2 deduped
│ │ │   └── util-deprecate@1.0.2 deduped
│ │ ├─┬ async@2.6.1
│ │ │ └── lodash@4.17.11 deduped
│ │ ├── buffer-crc32@0.2.13
│ │ ├── glob@7.0.6 deduped
│ │ ├── lodash@4.17.11 deduped
│ │ ├─┬ readable-stream@2.3.6
│ │ │ ├── core-util-is@1.0.2 deduped
│ │ │ ├── inherits@2.0.3 deduped
│ │ │ ├── isarray@1.0.0
│ │ │ ├── process-nextick-args@2.0.0 deduped
│ │ │ ├── safe-buffer@5.1.2 deduped
│ │ │ ├─┬ string_decoder@1.1.1
│ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ └── util-deprecate@1.0.2 deduped
│ │ ├─┬ tar-stream@1.6.2
│ │ │ ├─┬ bl@1.2.2
│ │ │ │ ├─┬ readable-stream@2.3.6
│ │ │ │ │ ├── core-util-is@1.0.2 deduped
│ │ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ │ ├── isarray@1.0.0
│ │ │ │ │ ├── process-nextick-args@2.0.0 deduped
│ │ │ │ │ ├── safe-buffer@5.1.2 deduped
│ │ │ │ │ ├─┬ string_decoder@1.1.1
│ │ │ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ │ │ └── util-deprecate@1.0.2 deduped
│ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ ├─┬ buffer-alloc@1.2.0
│ │ │ │ ├── buffer-alloc-unsafe@1.1.0
│ │ │ │ └── buffer-fill@1.0.0
│ │ │ ├─┬ end-of-stream@1.4.1
│ │ │ │ └── once@1.4.0 deduped
│ │ │ ├── fs-constants@1.0.0
│ │ │ ├─┬ readable-stream@2.3.6
│ │ │ │ ├── core-util-is@1.0.2 deduped
│ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ ├── isarray@1.0.0
│ │ │ │ ├── process-nextick-args@2.0.0 deduped
│ │ │ │ ├── safe-buffer@5.1.2 deduped
│ │ │ │ ├─┬ string_decoder@1.1.1
│ │ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ │ └── util-deprecate@1.0.2 deduped
│ │ │ ├── to-buffer@1.1.1
│ │ │ └── xtend@4.0.1
│ │ ├── walkdir@0.0.11
│ │ └─┬ zip-stream@1.2.0
│ │   ├── archiver-utils@1.3.0 deduped
│ │   ├─┬ compress-commons@1.2.2
│ │   │ ├── buffer-crc32@0.2.13 deduped
│ │   │ ├─┬ crc32-stream@2.0.0
│ │   │ │ ├─┬ crc@3.8.0
│ │   │ │ │ └─┬ buffer@5.2.1
│ │   │ │ │   ├── base64-js@1.3.0
│ │   │ │ │   └── ieee754@1.1.12 deduped
│ │   │ │ └─┬ readable-stream@2.3.6
│ │   │ │   ├── core-util-is@1.0.2 deduped
│ │   │ │   ├── inherits@2.0.3 deduped
│ │   │ │   ├── isarray@1.0.0
│ │   │ │   ├── process-nextick-args@2.0.0 deduped
│ │   │ │   ├── safe-buffer@5.1.2 deduped
│ │   │ │   ├─┬ string_decoder@1.1.1
│ │   │ │   │ └── safe-buffer@5.1.2 deduped
│ │   │ │   └── util-deprecate@1.0.2 deduped
│ │   │ ├── normalize-path@2.1.1 deduped
│ │   │ └─┬ readable-stream@2.3.6
│ │   │   ├── core-util-is@1.0.2 deduped
│ │   │   ├── inherits@2.0.3 deduped
│ │   │   ├── isarray@1.0.0
│ │   │   ├── process-nextick-args@2.0.0 deduped
│ │   │   ├── safe-buffer@5.1.2 deduped
│ │   │   ├─┬ string_decoder@1.1.1
│ │   │   │ └── safe-buffer@5.1.2 deduped
│ │   │   └── util-deprecate@1.0.2 deduped
│ │   ├── lodash@4.17.11 deduped
│ │   └─┬ readable-stream@2.3.6
│ │     ├── core-util-is@1.0.2 deduped
│ │     ├── inherits@2.0.3 deduped
│ │     ├── isarray@1.0.0
│ │     ├── process-nextick-args@2.0.0 deduped
│ │     ├── safe-buffer@5.1.2 deduped
│ │     ├─┬ string_decoder@1.1.1
│ │     │ └── safe-buffer@5.1.2 deduped
│ │     └── util-deprecate@1.0.2 deduped
│ ├─┬ chalk@1.1.3
│ │ ├── ansi-styles@2.2.1
│ │ ├── escape-string-regexp@1.0.5
│ │ ├─┬ has-ansi@2.0.0
│ │ │ └── ansi-regex@2.1.1
│ │ ├─┬ strip-ansi@3.0.1
│ │ │ └── ansi-regex@2.1.1 deduped
│ │ └── supports-color@2.0.0
│ ├─┬ iltorb@1.3.10
│ │ ├── detect-libc@0.2.0
│ │ ├── nan@2.11.1
│ │ ├─┬ node-gyp@3.8.0
│ │ │ ├─┬ fstream@1.0.11
│ │ │ │ ├── graceful-fs@4.1.15 deduped
│ │ │ │ ├── inherits@2.0.3 deduped
│ │ │ │ ├── mkdirp@0.5.1 deduped
│ │ │ │ └── rimraf@2.6.2 deduped
│ │ │ ├── glob@7.0.6 deduped
│ │ │ ├── graceful-fs@4.1.15 deduped
│ │ │ ├── mkdirp@0.5.1 deduped
│ │ │ ├── nopt@3.0.6 deduped
│ │ │ ├─┬ 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 deduped
│ │ │ │ │   ├── inherits@2.0.3 deduped
│ │ │ │ │   ├── isarray@1.0.0
│ │ │ │ │   ├── process-nextick-args@2.0.0 deduped
│ │ │ │ │   ├── safe-buffer@5.1.2 deduped
│ │ │ │ │   ├─┬ string_decoder@1.1.1
│ │ │ │ │   │ └── safe-buffer@5.1.2 deduped
│ │ │ │ │   └── util-deprecate@1.0.2 deduped
│ │ │ │ ├── console-control-strings@1.1.0
│ │ │ │ ├─┬ gauge@2.7.4
│ │ │ │ │ ├── aproba@1.2.0
│ │ │ │ │ ├── console-control-strings@1.1.0 deduped
│ │ │ │ │ ├── has-unicode@2.0.1
│ │ │ │ │ ├── object-assign@4.1.1 deduped
│ │ │ │ │ ├── signal-exit@3.0.2 deduped
│ │ │ │ │ ├── string-width@1.0.2 deduped
│ │ │ │ │ ├── strip-ansi@3.0.1 deduped
│ │ │ │ │ └─┬ wide-align@1.1.3
│ │ │ │ │   └── string-width@1.0.2 deduped
│ │ │ │ └── set-blocking@2.0.0
│ │ │ ├── osenv@0.1.5 deduped
│ │ │ ├─┬ request@2.88.0
│ │ │ │ ├── aws-sign2@0.7.0
│ │ │ │ ├── aws4@1.8.0 deduped
│ │ │ │ ├── caseless@0.12.0
│ │ │ │ ├── combined-stream@1.0.7 deduped
│ │ │ │ ├── extend@3.0.2 deduped
│ │ │ │ ├── forever-agent@0.6.1 deduped
│ │ │ │ ├─┬ form-data@2.3.3
│ │ │ │ │ ├── asynckit@0.4.0 deduped
│ │ │ │ │ ├── combined-stream@1.0.7 deduped
│ │ │ │ │ └── mime-types@2.1.21 deduped
│ │ │ │ ├─┬ har-validator@5.1.3
│ │ │ │ │ ├─┬ ajv@6.6.1
│ │ │ │ │ │ ├── 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
│ │ │ │ │ └── har-schema@2.0.0
│ │ │ │ ├─┬ http-signature@1.2.0
│ │ │ │ │ ├── assert-plus@1.0.0
│ │ │ │ │ ├── jsprim@1.4.1 deduped
│ │ │ │ │ └── sshpk@1.15.2 deduped
│ │ │ │ ├── is-typedarray@1.0.0 deduped
│ │ │ │ ├── isstream@0.1.2 deduped
│ │ │ │ ├── json-stringify-safe@5.0.1 deduped
│ │ │ │ ├── mime-types@2.1.21 deduped
│ │ │ │ ├── oauth-sign@0.9.0
│ │ │ │ ├── performance-now@2.1.0
│ │ │ │ ├── qs@6.5.2 deduped
│ │ │ │ ├── safe-buffer@5.1.2 deduped
│ │ │ │ ├── tough-cookie@2.4.3 deduped
│ │ │ │ ├── tunnel-agent@0.6.0 deduped
│ │ │ │ └── uuid@3.3.2
│ │ │ ├── rimraf@2.6.2 deduped
│ │ │ ├── semver@5.3.0
│ │ │ ├─┬ tar@2.2.1
│ │ │ │ ├─┬ block-stream@0.0.9
│ │ │ │ │ └── inherits@2.0.3 deduped
│ │ │ │ ├── fstream@1.0.11 deduped
│ │ │ │ └── inherits@2.0.3 deduped
│ │ │ └── which@1.3.1 deduped
│ │ └─┬ prebuild-install@2.5.3
│ │   ├── detect-libc@1.0.3
│ │   ├── expand-template@1.1.1
│ │   ├── github-from-package@0.0.0
│ │   ├── minimist@1.2.0 deduped
│ │   ├── mkdirp@0.5.1 deduped
│ │   ├─┬ node-abi@2.5.0
│ │   │ └── semver@5.6.0 deduped
│ │   ├── noop-logger@0.1.1
│ │   ├── npmlog@4.1.2 deduped
│ │   ├── os-homedir@1.0.2 deduped
│ │   ├─┬ pump@2.0.1
│ │   │ ├── end-of-stream@1.4.1 deduped
│ │   │ └── once@1.4.0 deduped
│ │   ├─┬ rc@1.2.8
│ │   │ ├── deep-extend@0.6.0
│ │   │ ├── ini@1.3.5
│ │   │ ├── minimist@1.2.0 deduped
│ │   │ └── strip-json-comments@2.0.1
│ │   ├─┬ simple-get@2.8.1
│ │   │ ├─┬ decompress-response@3.3.0
│ │   │ │ └── mimic-response@1.0.1
│ │   │ ├── once@1.4.0 deduped
│ │   │ └── simple-concat@1.0.0
│ │   ├── tar-fs@1.16.3 deduped
│ │   ├─┬ tunnel-agent@0.6.0
│ │   │ └── safe-buffer@5.1.2 deduped
│ │   └── which-pm-runs@1.0.0
│ ├── lodash@4.17.11
│ ├── pretty-bytes@4.0.2
│ └── stream-buffers@2.2.0
├─┬ grunt-contrib-concat@1.0.1
│ ├─┬ chalk@1.1.3
│ │ ├── ansi-styles@2.2.1
│ │ ├── escape-string-regexp@1.0.5 deduped
│ │ ├── has-ansi@2.0.0 deduped
│ │ ├── strip-ansi@3.0.1 deduped
│ │ └── supports-color@2.0.0
│ └── source-map@0.5.7
├─┬ grunt-contrib-copy@1.0.0
│ ├─┬ chalk@1.1.3
│ │ ├── ansi-styles@2.2.1
│ │ ├── escape-string-regexp@1.0.5 deduped
│ │ ├── has-ansi@2.0.0 deduped
│ │ ├── strip-ansi@3.0.1 deduped
│ │ └── supports-color@2.0.0
│ └── file-sync-cmp@0.1.1
├─┬ grunt-contrib-cssmin@1.0.2
│ ├─┬ chalk@1.1.3
│ │ ├── ansi-styles@2.2.1
│ │ ├── escape-string-regexp@1.0.5 deduped
│ │ ├── has-ansi@2.0.0 deduped
│ │ ├── strip-ansi@3.0.1 deduped
│ │ └── supports-color@2.0.0
│ ├─┬ clean-css@3.4.28
│ │ ├─┬ commander@2.8.1
│ │ │ └── graceful-readlink@1.0.1
│ │ └─┬ source-map@0.4.4
│ │   └── amdefine@1.0.1
│ └─┬ maxmin@1.1.0
│   ├─┬ chalk@1.1.3
│   │ ├── ansi-styles@2.2.1
│   │ ├── escape-string-regexp@1.0.5 deduped
│   │ ├── has-ansi@2.0.0 deduped
│   │ ├── strip-ansi@3.0.1 deduped
│   │ └── supports-color@2.0.0
│   ├─┬ figures@1.7.0
│   │ ├── escape-string-regexp@1.0.5 deduped
│   │ └── object-assign@4.1.1 deduped
│   ├─┬ gzip-size@1.0.0
│   │ ├─┬ browserify-zlib@0.1.4
│   │ │ └── pako@0.2.9 deduped
│   │ └── concat-stream@1.6.2 deduped
│   └─┬ pretty-bytes@1.0.4
│     ├── get-stdin@4.0.1 deduped
│     └── meow@3.7.0 deduped
├─┬ grunt-contrib-jshint@1.1.0
│ ├─┬ chalk@1.1.3
│ │ ├── ansi-styles@2.2.1
│ │ ├── escape-string-regexp@1.0.5 deduped
│ │ ├── has-ansi@2.0.0 deduped
│ │ ├── strip-ansi@3.0.1 deduped
│ │ └── supports-color@2.0.0
│ ├── hooker@0.2.3
│ └─┬ jshint@2.9.7
│   ├─┬ cli@1.0.1
│   │ ├── exit@0.1.2 deduped
│   │ └─┬ glob@7.1.3
│   │   ├── fs.realpath@1.0.0 deduped
│   │   ├── inflight@1.0.6 deduped
│   │   ├── inherits@2.0.3 deduped
│   │   ├── minimatch@3.0.4 deduped
│   │   ├── once@1.4.0 deduped
│   │   └── path-is-absolute@1.0.1 deduped
│   ├─┬ console-browserify@1.1.0
│   │ └── date-now@0.1.4
│   ├── exit@0.1.2 deduped
│   ├─┬ htmlparser2@3.8.3
│   │ ├── domelementtype@1.3.1
│   │ ├─┬ domhandler@2.3.0
│   │ │ └── domelementtype@1.3.1 deduped
│   │ ├─┬ domutils@1.5.1
│   │ │ ├── dom-serializer@0.1.0 deduped
│   │ │ └── domelementtype@1.3.1 deduped
│   │ ├── entities@1.0.0
│   │ └─┬ readable-stream@1.1.14
│   │   ├── core-util-is@1.0.2 deduped
│   │   ├── inherits@2.0.3 deduped
│   │   ├── isarray@0.0.1
│   │   └── string_decoder@0.10.31
│   ├── lodash@4.17.11 deduped
│   ├── minimatch@3.0.4 deduped
│   ├── shelljs@0.3.0
│   └── strip-json-comments@1.0.4
├─┬ grunt-contrib-uglify@2.3.0
│ ├─┬ chalk@1.1.3
│ │ ├── ansi-styles@2.2.1
│ │ ├── escape-string-regexp@1.0.5 deduped
│ │ ├── has-ansi@2.0.0 deduped
│ │ ├── strip-ansi@3.0.1 deduped
│ │ └── supports-color@2.0.0
│ ├── maxmin@1.1.0 deduped
│ ├─┬ object.assign@4.1.0
│ │ ├─┬ define-properties@1.1.3
│ │ │ └── object-keys@1.0.12 deduped
│ │ ├── function-bind@1.1.1
│ │ ├── has-symbols@1.0.0
│ │ └── object-keys@1.0.12
│ ├─┬ uglify-js@2.8.29
│ │ ├── source-map@0.5.7 deduped
│ │ ├── uglify-to-browserify@1.0.2
│ │ └── yargs@3.10.0 deduped
│ └── uri-path@1.0.0
├─┬ grunt-contrib-watch@1.1.0
│ ├─┬ async@2.6.1
│ │ └── lodash@4.17.11 deduped
│ ├─┬ gaze@1.1.3
│ │ └─┬ globule@1.2.1
│ │   ├─┬ glob@7.1.3
│ │   │ ├── fs.realpath@1.0.0 deduped
│ │   │ ├── inflight@1.0.6 deduped
│ │   │ ├── inherits@2.0.3 deduped
│ │   │ ├── minimatch@3.0.4 deduped
│ │   │ ├── once@1.4.0 deduped
│ │   │ └── path-is-absolute@1.0.1 deduped
│ │   ├── lodash@4.17.11 deduped
│ │   └── minimatch@3.0.4 deduped
│ ├── lodash@4.17.11 deduped
│ └─┬ tiny-lr@1.1.1
│   ├─┬ body@5.1.0
│   │ ├── continuable-cache@0.3.1
│   │ ├─┬ error@7.0.2
│   │ │ ├── string-template@0.2.1
│   │ │ └── xtend@4.0.1 deduped
│   │ ├─┬ raw-body@1.1.7
│   │ │ ├── bytes@1.0.0
│   │ │ └── string_decoder@0.10.31 deduped
│   │ └── safe-json-parse@1.0.1
│   ├─┬ debug@3.2.6
│   │ └── ms@2.1.1
│   ├─┬ faye-websocket@0.10.0
│   │ └─┬ websocket-driver@0.7.0
│   │   ├── http-parser-js@0.5.0
│   │   └── websocket-extensions@0.1.3
│   ├── livereload-js@2.4.0
│   ├── object-assign@4.1.1
│   └── qs@6.5.2
├── grunt-exec@1.0.1
├── grunt-json-minify@1.1.0
├─┬ grunt-nw-builder@3.1.0
│ └─┬ nw-builder@3.1.3
│   ├── archiver@1.3.0 deduped
│   ├── bluebird@3.5.3
│   ├─┬ decompress-zip@0.3.0
│   │ ├─┬ binary@0.3.0
│   │ │ ├── buffers@0.1.1
│   │ │ └─┬ chainsaw@0.1.0
│   │ │   └── traverse@0.3.9
│   │ ├── graceful-fs@4.1.15 deduped
│   │ ├── mkpath@0.1.0
│   │ ├── nopt@3.0.6 deduped
│   │ ├── q@1.5.1
│   │ ├── readable-stream@1.1.14 deduped
│   │ └─┬ touch@0.0.3
│   │   └─┬ nopt@1.0.10
│   │     └── abbrev@1.1.1 deduped
│   ├── deprecate@1.0.0
│   ├─┬ graceful-fs-extra@2.0.0
│   │ ├─┬ fs-extra@0.30.0
│   │ │ ├── graceful-fs@4.1.15 deduped
│   │ │ ├── jsonfile@2.4.0 deduped
│   │ │ ├─┬ klaw@1.3.1
│   │ │ │ └── graceful-fs@4.1.15 deduped
│   │ │ ├── path-is-absolute@1.0.1 deduped
│   │ │ └── rimraf@2.6.2 deduped
│   │ ├── graceful-ncp@3.0.0 deduped
│   │ └─┬ proxyquire@1.8.0
│   │   ├─┬ fill-keys@1.0.2
│   │   │ ├── is-object@1.0.1 deduped
│   │   │ └── merge-descriptors@1.0.1
│   │   ├── module-not-found-error@1.0.1
│   │   └── resolve@1.1.7 deduped
│   ├─┬ graceful-ncp@3.0.0
│   │ ├── graceful-fs@4.1.15 deduped
│   │ ├── ncp@2.0.0
│   │ └── proxyquire@1.8.0 deduped
│   ├── inherits@2.0.3 deduped
│   ├── lodash@4.16.6
│   ├─┬ optimist@0.6.1
│   │ ├── minimist@0.0.10
│   │ └── wordwrap@0.0.2
│   ├─┬ platform-overrides@1.0.1
│   │ └── lodash@2.4.2
│   ├─┬ plist@2.1.0
│   │ ├── base64-js@1.2.0
│   │ ├── xmlbuilder@8.2.2
│   │ └── xmldom@0.1.27
│   ├── progress@1.1.8
│   ├── rcedit@0.7.0
│   ├── recursive-readdir-sync@1.0.6
│   ├─┬ request@2.75.0
│   │ ├── aws-sign2@0.6.0
│   │ ├── aws4@1.8.0
│   │ ├─┬ bl@1.1.2
│   │ │ └─┬ readable-stream@2.0.6
│   │ │   ├── core-util-is@1.0.2 deduped
│   │ │   ├── inherits@2.0.3 deduped
│   │ │   ├── isarray@1.0.0
│   │ │   ├── process-nextick-args@1.0.7
│   │ │   ├── string_decoder@0.10.31 deduped
│   │ │   └── util-deprecate@1.0.2 deduped
│   │ ├── caseless@0.11.0
│   │ ├─┬ combined-stream@1.0.7
│   │ │ └── delayed-stream@1.0.0
│   │ ├── extend@3.0.2 deduped
│   │ ├── forever-agent@0.6.1
│   │ ├─┬ form-data@2.0.0
│   │ │ ├── asynckit@0.4.0
│   │ │ ├── combined-stream@1.0.7 deduped
│   │ │ └── mime-types@2.1.21 deduped
│   │ ├─┬ har-validator@2.0.6
│   │ │ ├─┬ chalk@1.1.3
│   │ │ │ ├── ansi-styles@2.2.1
│   │ │ │ ├── escape-string-regexp@1.0.5 deduped
│   │ │ │ ├── has-ansi@2.0.0 deduped
│   │ │ │ ├── strip-ansi@3.0.1 deduped
│   │ │ │ └── supports-color@2.0.0
│   │ │ ├── commander@2.19.0
│   │ │ ├─┬ is-my-json-valid@2.19.0
│   │ │ │ ├─┬ generate-function@2.3.1
│   │ │ │ │ └── is-property@1.0.2
│   │ │ │ ├─┬ generate-object-property@1.2.0
│   │ │ │ │ └── is-property@1.0.2 deduped
│   │ │ │ ├── is-my-ip-valid@1.0.0
│   │ │ │ ├── jsonpointer@4.0.1
│   │ │ │ └── xtend@4.0.1 deduped
│   │ │ └── pinkie-promise@2.0.1 deduped
│   │ ├─┬ hawk@3.1.3
│   │ │ ├─┬ boom@2.10.1
│   │ │ │ └── hoek@2.16.3 deduped
│   │ │ ├─┬ cryptiles@2.0.5
│   │ │ │ └── boom@2.10.1 deduped
│   │ │ ├── hoek@2.16.3
│   │ │ └─┬ sntp@1.0.9
│   │ │   └── hoek@2.16.3 deduped
│   │ ├─┬ http-signature@1.1.1
│   │ │ ├── assert-plus@0.2.0
│   │ │ ├─┬ jsprim@1.4.1
│   │ │ │ ├── assert-plus@1.0.0 deduped
│   │ │ │ ├── extsprintf@1.3.0
│   │ │ │ ├── json-schema@0.2.3
│   │ │ │ └─┬ verror@1.10.0
│   │ │ │   ├── assert-plus@1.0.0 deduped
│   │ │ │   ├── core-util-is@1.0.2 deduped
│   │ │ │   └── extsprintf@1.3.0 deduped
│   │ │ └─┬ sshpk@1.15.2
│   │ │   ├─┬ asn1@0.2.4
│   │ │   │ └── safer-buffer@2.1.2 deduped
│   │ │   ├── assert-plus@1.0.0 deduped
│   │ │   ├─┬ bcrypt-pbkdf@1.0.2
│   │ │   │ └── tweetnacl@0.14.5 deduped
│   │ │   ├─┬ dashdash@1.14.1
│   │ │   │ └── assert-plus@1.0.0 deduped
│   │ │   ├─┬ ecc-jsbn@0.1.2
│   │ │   │ ├── jsbn@0.1.1 deduped
│   │ │   │ └── safer-buffer@2.1.2 deduped
│   │ │   ├─┬ getpass@0.1.7
│   │ │   │ └── assert-plus@1.0.0 deduped
│   │ │   ├── jsbn@0.1.1
│   │ │   ├── safer-buffer@2.1.2 deduped
│   │ │   └── tweetnacl@0.14.5
│   │ ├── is-typedarray@1.0.0
│   │ ├── isstream@0.1.2
│   │ ├── json-stringify-safe@5.0.1 deduped
│   │ ├─┬ mime-types@2.1.21
│   │ │ └── mime-db@1.37.0
│   │ ├── node-uuid@1.4.8
│   │ ├── oauth-sign@0.8.2
│   │ ├── qs@6.2.3
│   │ ├── stringstream@0.0.6 deduped
│   │ ├─┬ tough-cookie@2.3.4
│   │ │ └── punycode@1.4.1
│   │ └── tunnel-agent@0.4.3
│   ├── rimraf@2.6.2 deduped
│   ├── semver@2.3.2
│   ├─┬ simple-glob@0.1.1
│   │ ├─┬ glob@3.2.11
│   │ │ ├── inherits@2.0.3 deduped
│   │ │ └─┬ minimatch@0.3.0
│   │ │   ├── lru-cache@2.7.3 deduped
│   │ │   └── sigmund@1.0.1 deduped
│   │ ├── lodash@2.4.2
│   │ └─┬ minimatch@0.2.14
│   │   ├── lru-cache@2.7.3
│   │   └── sigmund@1.0.1
│   ├─┬ tar-fs@1.16.3
│   │ ├── chownr@1.1.1
│   │ ├── mkdirp@0.5.1 deduped
│   │ ├─┬ pump@1.0.3
│   │ │ ├── end-of-stream@1.4.1 deduped
│   │ │ └── once@1.4.0 deduped
│   │ └── tar-stream@1.6.2 deduped
│   ├─┬ temp@0.7.0
│   │ └── rimraf@2.2.8
│   ├─┬ update-notifier@1.0.3
│   │ ├─┬ boxen@0.6.0
│   │ │ ├─┬ ansi-align@1.1.0
│   │ │ │ └── string-width@1.0.2 deduped
│   │ │ ├── camelcase@2.1.1 deduped
│   │ │ ├─┬ chalk@1.1.3
│   │ │ │ ├── ansi-styles@2.2.1
│   │ │ │ ├── escape-string-regexp@1.0.5 deduped
│   │ │ │ ├── has-ansi@2.0.0 deduped
│   │ │ │ ├── strip-ansi@3.0.1 deduped
│   │ │ │ └── supports-color@2.0.0
│   │ │ ├── cli-boxes@1.0.0
│   │ │ ├── filled-array@1.1.0
│   │ │ ├── object-assign@4.1.1 deduped
│   │ │ ├─┬ repeating@2.0.1
│   │ │ │ └─┬ is-finite@1.0.2
│   │ │ │   └── number-is-nan@1.0.1
│   │ │ ├─┬ string-width@1.0.2
│   │ │ │ ├── code-point-at@1.1.0
│   │ │ │ ├─┬ is-fullwidth-code-point@1.0.0
│   │ │ │ │ └── number-is-nan@1.0.1 deduped
│   │ │ │ └── strip-ansi@3.0.1 deduped
│   │ │ └─┬ widest-line@1.0.0
│   │ │   └── string-width@1.0.2 deduped
│   │ ├─┬ chalk@1.1.3
│   │ │ ├── ansi-styles@2.2.1
│   │ │ ├── escape-string-regexp@1.0.5 deduped
│   │ │ ├── has-ansi@2.0.0 deduped
│   │ │ ├── strip-ansi@3.0.1 deduped
│   │ │ └── supports-color@2.0.0
│   │ ├─┬ configstore@2.1.0
│   │ │ ├─┬ dot-prop@3.0.0
│   │ │ │ └── is-obj@1.0.1
│   │ │ ├── graceful-fs@4.1.15 deduped
│   │ │ ├── mkdirp@0.5.1 deduped
│   │ │ ├── object-assign@4.1.1 deduped
│   │ │ ├── os-tmpdir@1.0.2 deduped
│   │ │ ├── osenv@0.1.5 deduped
│   │ │ ├── uuid@2.0.3
│   │ │ ├─┬ write-file-atomic@1.3.4
│   │ │ │ ├── graceful-fs@4.1.15 deduped
│   │ │ │ ├── imurmurhash@0.1.4
│   │ │ │ └── slide@1.1.6
│   │ │ └── xdg-basedir@2.0.0 deduped
│   │ ├── is-npm@1.0.0
│   │ ├─┬ latest-version@2.0.0
│   │ │ └─┬ package-json@2.4.0
│   │ │   ├─┬ got@5.7.1
│   │ │   │ ├── create-error-class@3.0.2 deduped
│   │ │   │ ├── duplexer2@0.1.4 deduped
│   │ │   │ ├── is-redirect@1.0.0 deduped
│   │ │   │ ├── is-retry-allowed@1.1.0 deduped
│   │ │   │ ├── is-stream@1.1.0 deduped
│   │ │   │ ├── lowercase-keys@1.0.1 deduped
│   │ │   │ ├── node-status-codes@1.0.0
│   │ │   │ ├── object-assign@4.1.1 deduped
│   │ │   │ ├── parse-json@2.2.0 deduped
│   │ │   │ ├── pinkie-promise@2.0.1 deduped
│   │ │   │ ├── read-all-stream@3.1.0 deduped
│   │ │   │ ├─┬ readable-stream@2.3.6
│   │ │   │ │ ├── core-util-is@1.0.2 deduped
│   │ │   │ │ ├── inherits@2.0.3 deduped
│   │ │   │ │ ├── isarray@1.0.0
│   │ │   │ │ ├── process-nextick-args@2.0.0 deduped
│   │ │   │ │ ├── safe-buffer@5.1.2 deduped
│   │ │   │ │ ├─┬ string_decoder@1.1.1
│   │ │   │ │ │ └── safe-buffer@5.1.2 deduped
│   │ │   │ │ └── util-deprecate@1.0.2 deduped
│   │ │   │ ├── timed-out@3.1.3
│   │ │   │ ├── unzip-response@1.0.2
│   │ │   │ └── url-parse-lax@1.0.0 deduped
│   │ │   ├─┬ registry-auth-token@3.3.2
│   │ │   │ ├── rc@1.2.8 deduped
│   │ │   │ └── safe-buffer@5.1.2 deduped
│   │ │   ├─┬ registry-url@3.1.0
│   │ │   │ └── rc@1.2.8 deduped
│   │ │   └── semver@5.6.0 deduped
│   │ ├── lazy-req@1.1.0
│   │ ├─┬ semver-diff@2.1.0
│   │ │ └── semver@5.6.0 deduped
│   │ └─┬ xdg-basedir@2.0.0
│   │   └── os-homedir@1.0.2 deduped
│   └── winresourcer@0.9.0
├─┬ grunt-replace@1.0.1
│ ├─┬ applause@1.2.2
│ │ ├─┬ cson-parser@1.3.5
│ │ │ └── coffee-script@1.12.7
│ │ ├── js-yaml@3.5.5 deduped
│ │ └── lodash@3.10.1
│ ├─┬ chalk@1.1.3
│ │ ├── ansi-styles@2.2.1
│ │ ├── escape-string-regexp@1.0.5 deduped
│ │ ├── has-ansi@2.0.0 deduped
│ │ ├── strip-ansi@3.0.1 deduped
│ │ └── supports-color@2.0.0
│ ├── file-sync-cmp@0.1.1 deduped
│ └── lodash@4.17.11 deduped
├─┬ grunt-usemin@3.1.1
│ ├─┬ chalk@1.1.3
│ │ ├── ansi-styles@2.2.1
│ │ ├── escape-string-regexp@1.0.5 deduped
│ │ ├── has-ansi@2.0.0 deduped
│ │ ├── strip-ansi@3.0.1 deduped
│ │ └── supports-color@2.0.0
│ ├── debug@2.6.9 deduped
│ ├── lodash@3.10.1
│ └── path-exists@1.0.0
├─┬ grunt-wget@0.1.3
│ ├── async@0.2.10
│ └─┬ request@2.40.0
│   ├── aws-sign2@0.5.0
│   ├── forever-agent@0.5.2
│   ├─┬ form-data@0.1.4
│   │ ├── async@0.9.2
│   │ ├─┬ combined-stream@0.0.7
│   │ │ └── delayed-stream@0.0.5
│   │ └── mime@1.2.11
│   ├─┬ hawk@1.1.1
│   │ ├─┬ boom@0.4.2
│   │ │ └── hoek@0.9.1 deduped
│   │ ├─┬ cryptiles@0.2.2
│   │ │ └── boom@0.4.2 deduped
│   │ ├── hoek@0.9.1
│   │ └─┬ sntp@0.2.4
│   │   └── hoek@0.9.1 deduped
│   ├─┬ 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.8
│   ├── oauth-sign@0.3.0
│   ├── qs@1.0.2
│   ├── stringstream@0.0.6
│   ├─┬ tough-cookie@2.4.3
│   │ ├── psl@1.1.31
│   │ └── punycode@1.4.1
│   └── tunnel-agent@0.4.3
├─┬ grunt-wiredep@3.0.1
│ └─┬ wiredep@4.0.0
│   ├─┬ bower-config@1.4.1
│   │ ├── graceful-fs@4.1.15 deduped
│   │ ├── mout@1.1.0
│   │ ├── optimist@0.6.1 deduped
│   │ ├── osenv@0.1.5 deduped
│   │ └─┬ untildify@2.1.0
│   │   └── os-homedir@1.0.2 deduped
│   ├── glob@7.0.6 deduped
│   ├── lodash@4.17.11 deduped
│   ├── propprop@0.3.1
│   ├─┬ through2@2.0.5
│   │ ├─┬ readable-stream@2.3.6
│   │ │ ├── core-util-is@1.0.2 deduped
│   │ │ ├── inherits@2.0.3 deduped
│   │ │ ├── isarray@1.0.0
│   │ │ ├── process-nextick-args@2.0.0 deduped
│   │ │ ├── safe-buffer@5.1.2 deduped
│   │ │ ├─┬ string_decoder@1.1.1
│   │ │ │ └── safe-buffer@5.1.2 deduped
│   │ │ └── util-deprecate@1.0.2 deduped
│   │ └── xtend@4.0.1 deduped
│   └─┬ wiredep-cli@0.1.0
│     ├─┬ chalk@1.1.3
│     │ ├── ansi-styles@2.2.1
│     │ ├── escape-string-regexp@1.0.5 deduped
│     │ ├── has-ansi@2.0.0 deduped
│     │ ├── strip-ansi@3.0.1 deduped
│     │ └── supports-color@2.0.0
│     ├── minimist@1.2.0 deduped
│     └── wiredep@4.0.0 deduped
├─┬ grunt-zip@0.17.1
│ ├── grunt-retro@0.6.4
│ └─┬ jszip@2.5.0
│   └── pako@0.2.9
├─┬ load-grunt-tasks@3.5.2
│ ├── arrify@1.0.1
│ ├─┬ multimatch@2.1.0
│ │ ├── array-differ@1.0.0
│ │ ├─┬ array-union@1.0.2
│ │ │ └── array-uniq@1.0.3
│ │ ├── arrify@1.0.1 deduped
│ │ └── minimatch@3.0.4 deduped
│ ├─┬ pkg-up@1.0.0
│ │ └─┬ find-up@1.1.2
│ │   ├─┬ path-exists@2.1.0
│ │   │ └── pinkie-promise@2.0.1 deduped
│ │   └─┬ pinkie-promise@2.0.1
│ │     └── pinkie@2.0.4
│ └─┬ resolve-pkg@0.1.0
│   └── resolve-from@2.0.0
├─┬ npm-platform-dependencies@0.0.12
│ └─┬ cross-spawn@4.0.2
│   ├─┬ lru-cache@4.1.5
│   │ ├── pseudomap@1.0.2
│   │ └── yallist@2.1.2
│   └── which@1.3.1 deduped
└─┬ nw@0.35.1
  ├─┬ chalk@1.1.3
  │ ├── ansi-styles@2.2.1
  │ ├── escape-string-regexp@1.0.5 deduped
  │ ├── has-ansi@2.0.0 deduped
  │ ├── strip-ansi@3.0.1 deduped
  │ └── supports-color@2.0.0
  ├─┬ decompress@3.0.0
  │ ├─┬ buffer-to-vinyl@1.1.0
  │ │ ├── file-type@3.9.0
  │ │ ├─┬ readable-stream@2.3.6
  │ │ │ ├── core-util-is@1.0.2 deduped
  │ │ │ ├── inherits@2.0.3 deduped
  │ │ │ ├── isarray@1.0.0
  │ │ │ ├── process-nextick-args@2.0.0 deduped
  │ │ │ ├── safe-buffer@5.1.2 deduped
  │ │ │ ├─┬ string_decoder@1.1.1
  │ │ │ │ └── safe-buffer@5.1.2 deduped
  │ │ │ └── util-deprecate@1.0.2 deduped
  │ │ ├── uuid@2.0.3
  │ │ └─┬ vinyl@1.2.0
  │ │   ├── clone@1.0.4
  │ │   ├── clone-stats@0.0.1
  │ │   └── replace-ext@0.0.1
  │ ├── concat-stream@1.6.2 deduped
  │ ├─┬ decompress-tar@3.1.0
  │ │ ├── is-tar@1.0.0
  │ │ ├── object-assign@2.1.1
  │ │ ├─┬ strip-dirs@1.1.1
  │ │ │ ├─┬ chalk@1.1.3
  │ │ │ │ ├── ansi-styles@2.2.1
  │ │ │ │ ├── escape-string-regexp@1.0.5 deduped
  │ │ │ │ ├── has-ansi@2.0.0 deduped
  │ │ │ │ ├── strip-ansi@3.0.1 deduped
  │ │ │ │ └── supports-color@2.0.0
  │ │ │ ├── get-stdin@4.0.1 deduped
  │ │ │ ├─┬ is-absolute@0.1.7
  │ │ │ │ └── is-relative@0.1.3
  │ │ │ ├── is-natural-number@2.1.1
  │ │ │ ├── minimist@1.2.0 deduped
  │ │ │ └─┬ sum-up@1.0.3
  │ │ │   └─┬ chalk@1.1.3
  │ │ │     ├── ansi-styles@2.2.1
  │ │ │     ├── escape-string-regexp@1.0.5 deduped
  │ │ │     ├── has-ansi@2.0.0 deduped
  │ │ │     ├── strip-ansi@3.0.1 deduped
  │ │ │     └── supports-color@2.0.0
  │ │ ├── tar-stream@1.6.2 deduped
  │ │ ├─┬ through2@0.6.5
  │ │ │ ├─┬ readable-stream@1.0.34
  │ │ │ │ ├── core-util-is@1.0.2 deduped
  │ │ │ │ ├── inherits@2.0.3 deduped
  │ │ │ │ ├── isarray@0.0.1 deduped
  │ │ │ │ └── string_decoder@0.10.31 deduped
  │ │ │ └── xtend@4.0.1 deduped
  │ │ └─┬ vinyl@0.4.6
  │ │   ├── clone@0.2.0
  │ │   └── clone-stats@0.0.1 deduped
  │ ├─┬ decompress-tarbz2@3.1.0
  │ │ ├── is-bzip2@1.0.0
  │ │ ├── object-assign@2.1.1
  │ │ ├─┬ seek-bzip@1.0.5
  │ │ │ └── commander@2.8.1 deduped
  │ │ ├── strip-dirs@1.1.1 deduped
  │ │ ├── tar-stream@1.6.2 deduped
  │ │ ├─┬ through2@0.6.5
  │ │ │ ├─┬ readable-stream@1.0.34
  │ │ │ │ ├── core-util-is@1.0.2 deduped
  │ │ │ │ ├── inherits@2.0.3 deduped
  │ │ │ │ ├── isarray@0.0.1 deduped
  │ │ │ │ └── string_decoder@0.10.31 deduped
  │ │ │ └── xtend@4.0.1 deduped
  │ │ └─┬ vinyl@0.4.6
  │ │   ├── clone@0.2.0
  │ │   └── clone-stats@0.0.1 deduped
  │ ├─┬ decompress-targz@3.1.0
  │ │ ├── is-gzip@1.0.0
  │ │ ├── object-assign@2.1.1
  │ │ ├── strip-dirs@1.1.1 deduped
  │ │ ├── tar-stream@1.6.2 deduped
  │ │ ├─┬ through2@0.6.5
  │ │ │ ├─┬ readable-stream@1.0.34
  │ │ │ │ ├── core-util-is@1.0.2 deduped
  │ │ │ │ ├── inherits@2.0.3 deduped
  │ │ │ │ ├── isarray@0.0.1 deduped
  │ │ │ │ └── string_decoder@0.10.31 deduped
  │ │ │ └── xtend@4.0.1 deduped
  │ │ └─┬ vinyl@0.4.6
  │ │   ├── clone@0.2.0
  │ │   └── clone-stats@0.0.1 deduped
  │ ├─┬ decompress-unzip@3.4.0
  │ │ ├── is-zip@1.0.0
  │ │ ├─┬ read-all-stream@3.1.0
  │ │ │ ├── pinkie-promise@2.0.1 deduped
  │ │ │ └─┬ readable-stream@2.3.6
  │ │ │   ├── core-util-is@1.0.2 deduped
  │ │ │   ├── inherits@2.0.3 deduped
  │ │ │   ├── isarray@1.0.0
  │ │ │   ├── process-nextick-args@2.0.0 deduped
  │ │ │   ├── safe-buffer@5.1.2 deduped
  │ │ │   ├─┬ string_decoder@1.1.1
  │ │ │   │ └── safe-buffer@5.1.2 deduped
  │ │ │   └── util-deprecate@1.0.2 deduped
  │ │ ├── stat-mode@0.2.2
  │ │ ├── strip-dirs@1.1.1 deduped
  │ │ ├── through2@2.0.5 deduped
  │ │ ├── vinyl@1.2.0 deduped
  │ │ └─┬ yauzl@2.10.0
  │ │   ├── buffer-crc32@0.2.13 deduped
  │ │   └─┬ fd-slicer@1.1.0
  │ │     └── pend@1.2.0 deduped
  │ ├─┬ stream-combiner2@1.1.1
  │ │ ├─┬ duplexer2@0.1.4
  │ │ │ └─┬ readable-stream@2.3.6
  │ │ │   ├── core-util-is@1.0.2 deduped
  │ │ │   ├── inherits@2.0.3 deduped
  │ │ │   ├── isarray@1.0.0
  │ │ │   ├── process-nextick-args@2.0.0 deduped
  │ │ │   ├── safe-buffer@5.1.2 deduped
  │ │ │   ├─┬ string_decoder@1.1.1
  │ │ │   │ └── safe-buffer@5.1.2 deduped
  │ │ │   └── util-deprecate@1.0.2 deduped
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.3 deduped
  │ │   ├── isarray@1.0.0
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ ├─┬ vinyl-assign@1.2.1
  │ │ ├── object-assign@4.1.1 deduped
  │ │ └─┬ readable-stream@2.3.6
  │ │   ├── core-util-is@1.0.2 deduped
  │ │   ├── inherits@2.0.3 deduped
  │ │   ├── isarray@1.0.0
  │ │   ├── process-nextick-args@2.0.0 deduped
  │ │   ├── safe-buffer@5.1.2 deduped
  │ │   ├─┬ string_decoder@1.1.1
  │ │   │ └── safe-buffer@5.1.2 deduped
  │ │   └── util-deprecate@1.0.2 deduped
  │ └─┬ vinyl-fs@2.4.4
  │   ├─┬ duplexify@3.6.1
  │   │ ├── end-of-stream@1.4.1 deduped
  │   │ ├── inherits@2.0.3 deduped
  │   │ ├─┬ readable-stream@2.3.6
  │   │ │ ├── core-util-is@1.0.2 deduped
  │   │ │ ├── inherits@2.0.3 deduped
  │   │ │ ├── isarray@1.0.0
  │   │ │ ├── process-nextick-args@2.0.0 deduped
  │   │ │ ├── safe-buffer@5.1.2 deduped
  │   │ │ ├─┬ string_decoder@1.1.1
  │   │ │ │ └── safe-buffer@5.1.2 deduped
  │   │ │ └── util-deprecate@1.0.2 deduped
  │   │ └── stream-shift@1.0.0
  │   ├─┬ glob-stream@5.3.5
  │   │ ├── extend@3.0.2 deduped
  │   │ ├─┬ glob@5.0.15
  │   │ │ ├── inflight@1.0.6 deduped
  │   │ │ ├── inherits@2.0.3 deduped
  │   │ │ ├── minimatch@3.0.4 deduped
  │   │ │ ├── once@1.4.0 deduped
  │   │ │ └── path-is-absolute@1.0.1 deduped
  │   │ ├─┬ glob-parent@3.1.0
  │   │ │ ├── is-glob@3.1.0 deduped
  │   │ │ └── path-dirname@1.0.2
  │   │ ├─┬ micromatch@2.3.11
  │   │ │ ├─┬ arr-diff@2.0.0
  │   │ │ │ └── arr-flatten@1.1.0 deduped
  │   │ │ ├── array-unique@0.2.1
  │   │ │ ├─┬ braces@1.8.5
  │   │ │ │ ├─┬ expand-range@1.8.2
  │   │ │ │ │ └─┬ fill-range@2.2.4
  │   │ │ │ │   ├─┬ is-number@2.1.0
  │   │ │ │ │   │ └─┬ kind-of@3.2.2
  │   │ │ │ │   │   └── is-buffer@1.1.6 deduped
  │   │ │ │ │   ├─┬ isobject@2.1.0
  │   │ │ │ │   │ └── isarray@1.0.0
  │   │ │ │ │   ├─┬ randomatic@3.1.1
  │   │ │ │ │   │ ├── is-number@4.0.0
  │   │ │ │ │   │ ├── kind-of@6.0.2 deduped
  │   │ │ │ │   │ └── math-random@1.0.1
  │   │ │ │ │   ├── repeat-element@1.1.3 deduped
  │   │ │ │ │   └── repeat-string@1.6.1 deduped
  │   │ │ │ ├── preserve@0.2.0
  │   │ │ │ └── repeat-element@1.1.3 deduped
  │   │ │ ├─┬ expand-brackets@0.1.5
  │   │ │ │ └── is-posix-bracket@0.1.1
  │   │ │ ├─┬ extglob@0.3.2
  │   │ │ │ └── is-extglob@1.0.0 deduped
  │   │ │ ├── filename-regex@2.0.1
  │   │ │ ├── is-extglob@1.0.0
  │   │ │ ├─┬ is-glob@2.0.1
  │   │ │ │ └── is-extglob@1.0.0 deduped
  │   │ │ ├─┬ kind-of@3.2.2
  │   │ │ │ └── is-buffer@1.1.6
  │   │ │ ├── normalize-path@2.1.1 deduped
  │   │ │ ├─┬ object.omit@2.0.1
  │   │ │ │ ├─┬ for-own@0.1.5
  │   │ │ │ │ └── for-in@1.0.2 deduped
  │   │ │ │ └── is-extendable@0.1.1 deduped
  │   │ │ ├─┬ parse-glob@3.0.4
  │   │ │ │ ├─┬ glob-base@0.3.0
  │   │ │ │ │ ├─┬ glob-parent@2.0.0
  │   │ │ │ │ │ └── is-glob@2.0.1 deduped
  │   │ │ │ │ └─┬ is-glob@2.0.1
  │   │ │ │ │   └── is-extglob@1.0.0
  │   │ │ │ ├── is-dotfile@1.0.3
  │   │ │ │ ├── is-extglob@1.0.0
  │   │ │ │ └─┬ is-glob@2.0.1
  │   │ │ │   └── is-extglob@1.0.0 deduped
  │   │ │ └─┬ regex-cache@0.4.4
  │   │ │   └─┬ is-equal-shallow@0.1.3
  │   │ │     └── is-primitive@2.0.0
  │   │ ├─┬ ordered-read-streams@0.3.0
  │   │ │ ├── is-stream@1.1.0 deduped
  │   │ │ └─┬ readable-stream@2.3.6
  │   │ │   ├── core-util-is@1.0.2 deduped
  │   │ │   ├── inherits@2.0.3 deduped
  │   │ │   ├── isarray@1.0.0
  │   │ │   ├── process-nextick-args@2.0.0 deduped
  │   │ │   ├── safe-buffer@5.1.2 deduped
  │   │ │   ├─┬ string_decoder@1.1.1
  │   │ │   │ └── safe-buffer@5.1.2 deduped
  │   │ │   └── util-deprecate@1.0.2 deduped
  │   │ ├─┬ through2@0.6.5
  │   │ │ ├─┬ readable-stream@1.0.34
  │   │ │ │ ├── core-util-is@1.0.2 deduped
  │   │ │ │ ├── inherits@2.0.3 deduped
  │   │ │ │ ├── isarray@0.0.1 deduped
  │   │ │ │ └── string_decoder@0.10.31 deduped
  │   │ │ └── xtend@4.0.1 deduped
  │   │ ├─┬ to-absolute-glob@0.1.1
  │   │ │ └─┬ extend-shallow@2.0.1
  │   │ │   └── is-extendable@0.1.1 deduped
  │   │ └─┬ unique-stream@2.2.1
  │   │   ├─┬ json-stable-stringify@1.0.1
  │   │   │ └── jsonify@0.0.0
  │   │   └── through2-filter@2.0.0 deduped
  │   ├── graceful-fs@4.1.15 deduped
  │   ├─┬ gulp-sourcemaps@1.6.0
  │   │ ├─┬ convert-source-map@1.6.0
  │   │ │ └── safe-buffer@5.1.2 deduped
  │   │ ├── graceful-fs@4.1.15 deduped
  │   │ ├── strip-bom@2.0.0 deduped
  │   │ ├── through2@2.0.5 deduped
  │   │ └── vinyl@1.2.0 deduped
  │   ├── is-valid-glob@0.3.0
  │   ├── lazystream@1.0.0 deduped
  │   ├── lodash.isequal@4.5.0
  │   ├─┬ merge-stream@1.0.1
  │   │ └─┬ readable-stream@2.3.6
  │   │   ├── core-util-is@1.0.2 deduped
  │   │   ├── inherits@2.0.3 deduped
  │   │   ├── isarray@1.0.0
  │   │   ├── process-nextick-args@2.0.0 deduped
  │   │   ├── safe-buffer@5.1.2 deduped
  │   │   ├─┬ string_decoder@1.1.1
  │   │   │ └── safe-buffer@5.1.2 deduped
  │   │   └── util-deprecate@1.0.2 deduped
  │   ├── mkdirp@0.5.1 deduped
  │   ├── object-assign@4.1.1 deduped
  │   ├─┬ readable-stream@2.3.6
  │   │ ├── core-util-is@1.0.2 deduped
  │   │ ├── inherits@2.0.3 deduped
  │   │ ├── isarray@1.0.0
  │   │ ├── process-nextick-args@2.0.0 deduped
  │   │ ├── safe-buffer@5.1.2 deduped
  │   │ ├─┬ string_decoder@1.1.1
  │   │ │ └── safe-buffer@5.1.2 deduped
  │   │ └── util-deprecate@1.0.2 deduped
  │   ├─┬ strip-bom@2.0.0
  │   │ └── is-utf8@0.2.1
  │   ├─┬ strip-bom-stream@1.0.0
  │   │ ├── first-chunk-stream@1.0.0
  │   │ └── strip-bom@2.0.0 deduped
  │   ├── through2@2.0.5 deduped
  │   ├─┬ through2-filter@2.0.0
  │   │ ├── through2@2.0.5 deduped
  │   │ └── xtend@4.0.1 deduped
  │   ├── vali-date@1.0.0
  │   └── vinyl@1.2.0 deduped
  ├─┬ download@5.0.3
  │ ├─┬ caw@2.0.1
  │ │ ├─┬ get-proxy@2.1.0
  │ │ │ └─┬ npm-conf@1.1.3
  │ │ │   ├─┬ config-chain@1.1.12
  │ │ │   │ ├── ini@1.3.5 deduped
  │ │ │   │ └── proto-list@1.2.4
  │ │ │   └── pify@3.0.0
  │ │ ├─┬ isurl@1.0.0
  │ │ │ ├─┬ has-to-string-tag-x@1.4.1
  │ │ │ │ └── has-symbol-support-x@1.4.2
  │ │ │ └── is-object@1.0.1
  │ │ ├── tunnel-agent@0.6.0 deduped
  │ │ └── url-to-options@1.0.1
  │ ├─┬ decompress@4.2.0
  │ │ ├─┬ decompress-tar@4.1.1
  │ │ │ ├── file-type@5.2.0
  │ │ │ ├── is-stream@1.1.0 deduped
  │ │ │ └── tar-stream@1.6.2 deduped
  │ │ ├─┬ decompress-tarbz2@4.1.1
  │ │ │ ├── decompress-tar@4.1.1 deduped
  │ │ │ ├── file-type@6.2.0
  │ │ │ ├── is-stream@1.1.0 deduped
  │ │ │ ├── seek-bzip@1.0.5 deduped
  │ │ │ └─┬ unbzip2-stream@1.3.1
  │ │ │   ├─┬ buffer@3.6.0
  │ │ │   │ ├── base64-js@0.0.8
  │ │ │   │ ├── ieee754@1.1.12
  │ │ │   │ └── isarray@1.0.0
  │ │ │   └── through@2.3.8
  │ │ ├─┬ decompress-targz@4.1.1
  │ │ │ ├── decompress-tar@4.1.1 deduped
  │ │ │ ├── file-type@5.2.0 deduped
  │ │ │ └── is-stream@1.1.0 deduped
  │ │ ├─┬ decompress-unzip@4.0.1
  │ │ │ ├── file-type@3.9.0
  │ │ │ ├─┬ get-stream@2.3.1
  │ │ │ │ ├── object-assign@4.1.1 deduped
  │ │ │ │ └── pinkie-promise@2.0.1 deduped
  │ │ │ ├── pify@2.3.0 deduped
  │ │ │ └── yauzl@2.10.0 deduped
  │ │ ├── graceful-fs@4.1.15 deduped
  │ │ ├─┬ make-dir@1.3.0
  │ │ │ └── pify@3.0.0
  │ │ ├── pify@2.3.0 deduped
  │ │ └─┬ strip-dirs@2.1.0
  │ │   └── is-natural-number@4.0.1
  │ ├─┬ filenamify@2.1.0
  │ │ ├── filename-reserved-regex@2.0.0
  │ │ ├─┬ strip-outer@1.0.1
  │ │ │ └── escape-string-regexp@1.0.5 deduped
  │ │ └─┬ trim-repeated@1.0.0
  │ │   └── escape-string-regexp@1.0.5 deduped
  │ ├── get-stream@3.0.0
  │ ├─┬ got@6.7.1
  │ │ ├─┬ create-error-class@3.0.2
  │ │ │ └── capture-stack-trace@1.0.1
  │ │ ├── duplexer3@0.1.4
  │ │ ├── get-stream@3.0.0 deduped
  │ │ ├── is-redirect@1.0.0
  │ │ ├── is-retry-allowed@1.1.0
  │ │ ├── is-stream@1.1.0
  │ │ ├── lowercase-keys@1.0.1
  │ │ ├── safe-buffer@5.1.2 deduped
  │ │ ├── timed-out@4.0.1
  │ │ ├── unzip-response@2.0.1
  │ │ └─┬ url-parse-lax@1.0.0
  │ │   └── prepend-http@1.0.4
  │ ├── mkdirp@0.5.1 deduped
  │ └── pify@2.3.0
  ├── file-exists@2.0.0
  ├── merge@1.2.1
  ├─┬ multimeter@0.1.1
  │ └── charm@0.1.2
  ├── rimraf@2.6.2 deduped
  ├── semver@5.6.0
  └─┬ 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
    │ │ │ │ └── is-buffer@1.1.6 deduped
    │ │ │ ├── longest@1.0.1
    │ │ │ └── repeat-string@1.6.1
    │ │ └── lazy-cache@1.0.4
    │ ├─┬ right-align@0.1.3
    │ │ └── align-text@0.1.4 deduped
    │ └── wordwrap@0.0.2 deduped
    ├── decamelize@1.2.0
    └── window-size@0.1.0

npm ERR! peer dep missing: grunt@~0.4.0, required by grunt-wget@0.1.3

I have npm 6.4.1 and node 8.12

cavearr commented 5 years ago

Instala la última versión de node y ejecuta de nuevo npm install (asegurándote que la nueva verisón de node ha sustituido a la actual).

bogdanr commented 5 years ago

As you can see in the bug report I did that. The first package listed by npm list is angular.

cavearr commented 5 years ago

Sorry for my first response in Spanish :)

The error is an unmet peer dependency (UNMET PEER DEPENDENCY grunt@1.0.3) , this type of conflicts are usually due to the use of different node versions to which the project was developed.

I'll recomend you the next steps:

1) Remove node_modules directory inside icestudio or remove icestudio dir and clone from github again. 2) Install latest node.js version https://nodejs.org/dist/v11.6.0/node-v11.6.0-linux-x64.tar.xz (and modify PATH environment variable to use it). 3) From your icestudio clean dir, execute "npm install" 4) After installation succed, execute "npm start"

I hope this help you

bogdanr commented 5 years ago

I installed node 11.6.0, did a fresh clone and ran npm install but when I run npm start I still get the previous message. In addition to that, now it also tells me it can't find the extract-zip module.

cavearr commented 5 years ago

Try to execute:

npm install extract-zip --save

and then:

npm start

bogdanr commented 5 years ago

Now it looks exactly like the first error message.

cavearr commented 5 years ago

The problem resides in your local installation, probably old packages override the new ones. Try next insice icestudio dir:

npm cache clean npm update -g npm install npm start

bogdanr commented 5 years ago

This doesn't really do anything because I had a clean install.

cavearr commented 5 years ago

can you describe the steps you follow from scratch and the exact commands? which linux distribution or mac do you have?

bogdanr commented 5 years ago

I am using my own distro and building nodejs from source. Yesterday when we did all the test I deleted all node_modules and related things so it would all be in a clean environment.

I am not doing anything fancy, just:

    1  git clone git@github.com:FPGAwars/icestudio.git
    2  cd icestudio/
    3  node --version
    4  npm install
    5  npm start

Obviously, after I did this I also did a npm install extract-zip --save because extract-zip was reported missing and then I tried another npm start which ended up looking like the first error message.

cavearr commented 5 years ago

Since you do not work on a standard distribution, I do not know how to help you.

Try to do something, sometimes with similar dependency problems like this, solved it:

npm install -g npm-install-missing

and then insice icestudio dir:

npm-install-missing

If previously doesn't work, remove icestudio dir , download this script and execute:

https://gist.github.com/charliva/f47e059425a375abb067e905d2caa8b1#file-icestudio-install-with-report-sh

this install icestudio and try to launch it. GEnerating a install-report.txt file inside the icestudio directory.

When finished attach your report and i try to find the problem.

bogdanr commented 5 years ago

install-report.txt

cavearr commented 4 years ago

you can try the new 0.5.1 dev branch with node 10.17.x installed.