UltimateHackingKeyboard / agent

Ultimate Hacking Keyboard configurator
https://ultimatehackingkeyboard.github.io/agent/
Other
702 stars 77 forks source link

Upgrade to npm 5 #310

Closed mondalaci closed 7 years ago

mondalaci commented 7 years ago

@eltang has just reported that he cannot build Agent, so I freshly cloned it and reproduced the same issue that he reported. Can you look into it, @fjozsef, @ert78gb, @attilacsanyi?

Apart from solving this specific issue, I'd like to make sure this will never happen again. According to my knowledge, Agent got broken due to external circumstances. Should we hardcode the versions of our dependencies, or can you see any other solution?

@eltang cannot develop the firmware because of this issue, so I'd like this wrapped up as soon as possible. Thanks in advance, guys!

laci@spark ~/download/agent $ npm i
npm WARN deprecated fs-promise@2.0.3: Use mz or fs-extra^3.0 with Promise Support
npm WARN prefer global colorguard@1.2.0 should be installed with -g
npm WARN prefer global node-gyp@3.6.2 should be installed with -g

> fcopy-pre-bundled@0.1.2 install /home/laci/download/agent/node_modules/fcopy-pre-bundled
> node-gyp rebuild

gyp: binding.gyp not found (cwd: /home/laci/download/agent/node_modules/fcopy-pre-bundled) while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:308:16)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:194:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.8.0-39-generic
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/laci/download/agent/node_modules/fcopy-pre-bundled
gyp ERR! node -v v7.10.0
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok 
uhk-agent@1.0.0 /home/laci/download/agent
├── @angular/animations@4.0.3 
├── @angular/common@4.0.3 
├── UNMET PEER DEPENDENCY @angular/compiler@4.0.3
├── UNMET PEER DEPENDENCY @angular/core@4.0.3
├── UNMET PEER DEPENDENCY @angular/forms@4.0.3
├── @angular/platform-browser@4.0.3 
├── @angular/platform-browser-dynamic@4.0.3 
├── @angular/router@4.0.3 
├── @ngrx/core@1.2.0 
├── @ngrx/effects@2.0.3 
├── @ngrx/router-store@1.2.6 
├── @ngrx/store@2.2.2 
├── @ngrx/store-devtools@3.2.4 
├── @ngrx/store-log-monitor@3.0.2 
├── @types/core-js@0.9.35 
├── @types/file-saver@0.0.0 
├── @types/jquery@2.0.47 
├── @types/node@6.0.78 
├── @types/usb@1.1.3 
├─┬ angular2-template-loader@0.6.2 
│ └─┬ loader-utils@0.2.17 
│   ├── big.js@3.1.3 
│   └── emojis-list@2.1.0 
├── bootstrap@3.3.7 
├── browser-stdout@1.3.0 
├─┬ buffer@5.0.6 
│ ├── base64-js@1.2.0 
│ └── ieee754@1.1.8 
├─┬ copy-webpack-plugin@4.0.1 
│ ├── bluebird@2.11.0 
│ ├─┬ fs-extra@0.26.7 
│ │ ├── graceful-fs@4.1.11 
│ │ ├── jsonfile@2.4.0 
│ │ └── klaw@1.3.1 
│ ├─┬ glob@6.0.4 
│ │ ├─┬ inflight@1.0.6 
│ │ │ └── wrappy@1.0.2 
│ │ ├── inherits@2.0.3 
│ │ ├── once@1.4.0 
│ │ └── path-is-absolute@1.0.1 
│ ├─┬ is-glob@3.1.0 
│ │ └── is-extglob@2.1.1 
│ ├── loader-utils@0.2.17 
│ ├── lodash@4.17.4 
│ ├─┬ minimatch@3.0.4 
│ │ └─┬ brace-expansion@1.1.8 
│ │   ├── balanced-match@1.0.0 
│ │   └── concat-map@0.0.1 
│ └── node-dir@0.1.17 
├── core-js@2.4.1 
├─┬ dragula@3.7.2 
│ ├─┬ contra@1.9.4 
│ │ ├── atoa@1.0.0 
│ │ └── ticky@1.0.1 
│ └─┬ crossvent@1.5.4 
│   └── custom-event@1.0.0 
├─┬ electron@1.6.10 
│ ├── @types/node@7.0.31 
│ ├─┬ electron-download@3.3.0 
│ │ ├── fs-extra@0.30.0 
│ │ ├── home-path@1.0.5 
│ │ ├── minimist@1.2.0 
│ │ ├─┬ nugget@2.0.1 
│ │ │ ├── minimist@1.2.0 
│ │ │ ├── pretty-bytes@1.0.4 
│ │ │ ├─┬ progress-stream@1.2.0 
│ │ │ │ ├── speedometer@0.1.4 
│ │ │ │ └─┬ through2@0.2.3 
│ │ │ │   ├─┬ readable-stream@1.1.14 
│ │ │ │   │ ├── isarray@0.0.1 
│ │ │ │   │ └── string_decoder@0.10.31 
│ │ │ │   └─┬ xtend@2.1.2 
│ │ │ │     └── object-keys@0.4.0 
│ │ │ ├── single-line-log@1.1.2 
│ │ │ └── throttleit@0.0.2 
│ │ ├── path-exists@2.1.0 
│ │ ├─┬ rc@1.2.1 
│ │ │ ├── deep-extend@0.4.2 
│ │ │ ├── ini@1.3.4 
│ │ │ ├── minimist@1.2.0 
│ │ │ └── strip-json-comments@2.0.1 
│ │ └─┬ sumchecker@1.3.1 
│ │   └── es6-promise@4.1.0 
│ └─┬ extract-zip@1.6.5 
│   ├─┬ concat-stream@1.6.0 
│   │ └── typedarray@0.0.6 
│   ├─┬ debug@2.2.0 
│   │ └── ms@0.7.1 
│   ├── mkdirp@0.5.0 
│   └─┬ yauzl@2.4.1 
│     └─┬ fd-slicer@1.0.1 
│       └── pend@1.2.0 
├─┬ electron-rebuild@1.5.11 
│ ├── colors@1.1.2 
│ ├─┬ debug@2.6.8 
│ │ └── ms@2.0.0 
│ ├─┬ fs-promise@2.0.3 
│ │ ├── any-promise@1.3.0 
│ │ ├── fs-extra@2.1.2 
│ │ ├── mz@2.6.0 
│ │ └─┬ thenify-all@1.6.0 
│ │   └── thenify@3.3.0 
│ ├── node-abi@2.0.3 
│ ├─┬ node-gyp@3.6.2 
│ │ ├── fstream@1.0.11 
│ │ ├─┬ nopt@3.0.6 
│ │ │ └── abbrev@1.1.0 
│ │ ├─┬ osenv@0.1.4 
│ │ │ └── os-tmpdir@1.0.2 
│ │ ├─┬ tar@2.2.1 
│ │ │ └── block-stream@0.0.9 
│ │ └─┬ which@1.2.14 
│ │   └── isexe@2.0.0 
│ ├─┬ ora@1.3.0 
│ │ ├─┬ cli-cursor@2.1.0 
│ │ │ └─┬ restore-cursor@2.0.0 
│ │ │   └── onetime@2.0.1 
│ │ └── cli-spinners@1.0.0 
│ ├── rimraf@2.6.1 
│ ├── spawn-rx@2.0.11 
│ └─┬ yargs@7.1.0 
│   ├── camelcase@3.0.0 
│   ├─┬ cliui@3.2.0 
│   │ └── wrap-ansi@2.1.0 
│   ├── decamelize@1.2.0 
│   ├── get-caller-file@1.0.2 
│   ├─┬ os-locale@1.4.0 
│   │ └─┬ lcid@1.0.0 
│   │   └── invert-kv@1.0.0 
│   ├─┬ read-pkg-up@1.0.1 
│   │ ├── find-up@1.1.2 
│   │ └─┬ read-pkg@1.1.0 
│   │   ├─┬ load-json-file@1.1.0 
│   │   │ └─┬ strip-bom@2.0.0 
│   │   │   └── is-utf8@0.2.1 
│   │   └── path-type@1.1.0 
│   ├── require-directory@2.1.1 
│   ├── require-main-filename@1.0.1 
│   ├── set-blocking@2.0.0 
│   ├─┬ string-width@1.0.2 
│   │ ├── code-point-at@1.1.0 
│   │ └─┬ is-fullwidth-code-point@1.0.0 
│   │   └── number-is-nan@1.0.1 
│   ├── which-module@1.0.0 
│   ├── y18n@3.2.1 
│   └── yargs-parser@5.0.0 
├── expose-loader@0.7.3 
├── filesaver.js@0.2.0 
├── font-awesome@4.7.0 
├─┬ html-loader@0.4.5 
│ ├─┬ es6-templates@0.2.3 
│ │ ├─┬ recast@0.11.23 
│ │ │ ├── ast-types@0.9.6 
│ │ │ ├── esprima@3.1.3 
│ │ │ └── private@0.1.7 
│ │ └── through@2.3.8 
│ ├── fastparse@1.1.1 
│ ├─┬ html-minifier@3.5.2 
│ │ ├─┬ camel-case@3.0.0 
│ │ │ ├─┬ no-case@2.3.1 
│ │ │ │ └── lower-case@1.1.4 
│ │ │ └── upper-case@1.1.3 
│ │ ├── clean-css@4.1.4 
│ │ ├─┬ commander@2.9.0 
│ │ │ └── graceful-readlink@1.0.1 
│ │ ├── he@1.1.1 
│ │ ├─┬ ncname@1.0.0 
│ │ │ └── xml-char-classes@1.0.0 
│ │ ├── param-case@2.1.1 
│ │ ├── relateurl@0.2.7 
│ │ └── uglify-js@3.0.17 
│ ├── loader-utils@1.1.0 
│ └── object-assign@4.1.1 
├── jquery@3.2.1 
├── json-loader@0.5.4 
├── ng2-dragula@1.3.1 
├─┬ ng2-select2@1.0.0-beta.10 
│ └── @types/select2@4.0.37 
├─┬ node-sass@4.5.3 
│ ├── async-foreach@0.1.3 
│ ├─┬ 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 
│ ├─┬ cross-spawn@3.0.1 
│ │ └─┬ lru-cache@4.1.1 
│ │   ├── pseudomap@1.0.2 
│ │   └── yallist@2.1.2 
│ ├─┬ gaze@1.1.2 
│ │ └── globule@1.2.0 
│ ├── get-stdin@4.0.1 
│ ├─┬ glob@7.1.2 
│ │ └── fs.realpath@1.0.0 
│ ├── in-publish@2.0.0 
│ ├── lodash.assign@4.2.0 
│ ├── lodash.clonedeep@4.5.0 
│ ├── lodash.mergewith@4.6.0 
│ ├─┬ meow@3.7.0 
│ │ ├─┬ camelcase-keys@2.1.0 
│ │ │ └── camelcase@2.1.1 
│ │ ├─┬ 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.3.8 
│ │ │ ├── hosted-git-info@2.4.2 
│ │ │ ├─┬ 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 
│ │ ├─┬ redent@1.0.0 
│ │ │ ├─┬ indent-string@2.1.0 
│ │ │ │ └─┬ repeating@2.0.1 
│ │ │ │   └── is-finite@1.0.2 
│ │ │ └── strip-indent@1.0.1 
│ │ └── trim-newlines@1.0.0 
│ ├─┬ mkdirp@0.5.1 
│ │ └── minimist@0.0.8 
│ ├── nan@2.6.2 
│ ├─┬ npmlog@4.1.0 
│ │ ├─┬ are-we-there-yet@1.1.4 
│ │ │ └── delegates@1.0.0 
│ │ ├── console-control-strings@1.1.0 
│ │ └─┬ gauge@2.7.4 
│ │   ├── aproba@1.1.2 
│ │   ├── has-unicode@2.0.1 
│ │   └── wide-align@1.1.2 
│ ├─┬ request@2.81.0 
│ │ ├── aws-sign2@0.6.0 
│ │ ├── aws4@1.6.0 
│ │ ├── caseless@0.12.0 
│ │ ├─┬ combined-stream@1.0.5 
│ │ │ └── delayed-stream@1.0.0 
│ │ ├── extend@3.0.1 
│ │ ├── forever-agent@0.6.1 
│ │ ├─┬ form-data@2.1.4 
│ │ │ └── asynckit@0.4.0 
│ │ ├─┬ har-validator@4.2.1 
│ │ │ └── har-schema@1.0.5 
│ │ ├─┬ 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.4.0 
│ │ │ │ ├── assert-plus@1.0.0 
│ │ │ │ ├── extsprintf@1.0.2 
│ │ │ │ ├── json-schema@0.2.3 
│ │ │ │ └── verror@1.3.6 
│ │ │ └─┬ sshpk@1.13.1 
│ │ │   ├── asn1@0.2.3 
│ │ │   ├── assert-plus@1.0.0 
│ │ │   ├── bcrypt-pbkdf@1.0.1 
│ │ │   ├─┬ dashdash@1.14.1 
│ │ │   │ └── assert-plus@1.0.0 
│ │ │   ├── ecc-jsbn@0.1.1 
│ │ │   ├─┬ getpass@0.1.7 
│ │ │   │ └── assert-plus@1.0.0 
│ │ │   ├── jsbn@0.1.1 
│ │ │   └── tweetnacl@0.14.5 
│ │ ├── is-typedarray@1.0.0 
│ │ ├── isstream@0.1.2 
│ │ ├── json-stringify-safe@5.0.1 
│ │ ├─┬ mime-types@2.1.15 
│ │ │ └── mime-db@1.27.0 
│ │ ├── oauth-sign@0.8.2 
│ │ ├── performance-now@0.2.0 
│ │ ├── qs@6.4.0 
│ │ ├── safe-buffer@5.0.1 
│ │ ├── stringstream@0.0.5 
│ │ ├── tough-cookie@2.3.2 
│ │ ├── tunnel-agent@0.6.0 
│ │ └── uuid@3.1.0 
│ ├─┬ sass-graph@2.2.4 
│ │ ├─┬ scss-tokenizer@0.2.3 
│ │ │ └── source-map@0.4.4 
│ │ └─┬ yargs@7.1.0 
│ │   ├── camelcase@3.0.0 
│ │   ├── os-locale@1.4.0 
│ │   ├── which-module@1.0.0 
│ │   └── yargs-parser@5.0.0 
│ └─┬ stdout-stream@1.4.0 
│   └─┬ readable-stream@2.2.11 
│     ├── core-util-is@1.0.2 
│     ├── isarray@1.0.0 
│     ├── process-nextick-args@1.0.7 
│     ├── string_decoder@1.0.2 
│     └── util-deprecate@1.0.2 
├─┬ npm-run-all@4.0.2 
│ ├─┬ cross-spawn@5.1.0 
│ │ └─┬ shebang-command@1.2.0 
│ │   └── shebang-regex@1.0.0 
│ ├─┬ ps-tree@1.1.0 
│ │ └─┬ event-stream@3.3.4 
│ │   ├── duplexer@0.1.1 
│ │   ├── from@0.1.7 
│ │   ├── map-stream@0.1.0 
│ │   ├── pause-stream@0.0.11 
│ │   ├── split@0.3.3 
│ │   └── stream-combiner@0.0.4 
│ ├─┬ read-pkg@2.0.0 
│ │ ├─┬ load-json-file@2.0.0 
│ │ │ └── strip-bom@3.0.0 
│ │ └── path-type@2.0.0 
│ ├─┬ shell-quote@1.6.1 
│ │ ├── array-filter@0.0.1 
│ │ ├── array-map@0.0.0 
│ │ ├── array-reduce@0.0.0 
│ │ └── jsonify@0.0.0 
│ └─┬ string.prototype.padend@3.0.0 
│   ├─┬ define-properties@1.1.2 
│   │ ├── foreach@2.0.5 
│   │ └── object-keys@1.0.11 
│   ├─┬ es-abstract@1.7.0 
│   │ ├─┬ es-to-primitive@1.1.1 
│   │ │ ├── is-date-object@1.0.1 
│   │ │ └── is-symbol@1.0.1 
│   │ ├── is-callable@1.1.3 
│   │ └─┬ is-regex@1.0.4 
│   │   └── has@1.0.1 
│   └── function-bind@1.1.0 
├─┬ path@0.12.7 
│ ├── process@0.11.10 
│ └─┬ util@0.10.3 
│   └── inherits@2.0.1 
├── raw-loader@0.5.1 
├─┬ rxjs@5.3.0 
│ └── symbol-observable@1.0.4 
├─┬ sass-loader@6.0.6 
│ ├── async@2.4.1 
│ ├─┬ clone-deep@0.3.0 
│ │ ├─┬ for-own@1.0.0 
│ │ │ └── for-in@1.0.2 
│ │ ├─┬ is-plain-object@2.0.3 
│ │ │ └── isobject@3.0.0 
│ │ ├─┬ kind-of@3.2.2 
│ │ │ └── is-buffer@1.1.5 
│ │ └─┬ shallow-clone@0.1.2 
│ │   ├── is-extendable@0.1.1 
│ │   ├── kind-of@2.0.1 
│ │   ├── lazy-cache@0.2.7 
│ │   └─┬ mixin-object@2.0.1 
│ │     └── for-in@0.1.8 
│ ├── lodash.tail@4.1.1 
│ └── pify@3.0.0 
├─┬ select2@4.0.3 
│ ├── almond@0.3.3 
│ └── jquery-mousewheel@3.1.13 
├─┬ standard-version@4.2.0 
│ ├─┬ conventional-changelog@1.1.3 
│ │ ├─┬ conventional-changelog-angular@1.3.3 
│ │ │ ├─┬ compare-func@1.3.2 
│ │ │ │ ├── array-ify@1.0.0 
│ │ │ │ └─┬ dot-prop@3.0.0 
│ │ │ │   └── is-obj@1.0.1 
│ │ │ ├── github-url-from-git@1.5.0 
│ │ │ └── q@1.5.0 
│ │ ├── conventional-changelog-atom@0.1.0 
│ │ ├── conventional-changelog-codemirror@0.1.0 
│ │ ├─┬ conventional-changelog-core@1.8.0 
│ │ │ ├─┬ conventional-changelog-writer@1.4.1 
│ │ │ │ ├─┬ handlebars@4.0.10 
│ │ │ │ │ ├── async@1.5.2 
│ │ │ │ │ ├── source-map@0.4.4 
│ │ │ │ │ └─┬ uglify-js@2.8.29 
│ │ │ │ │   ├── source-map@0.5.6 
│ │ │ │ │   └─┬ yargs@3.10.0 
│ │ │ │ │     ├── camelcase@1.2.1 
│ │ │ │ │     └─┬ cliui@2.1.0 
│ │ │ │ │       └── wordwrap@0.0.2 
│ │ │ │ ├── split@1.0.0 
│ │ │ │ └─┬ through2@2.0.3 
│ │ │ │   └── xtend@4.0.1 
│ │ │ ├── dateformat@1.0.12 
│ │ │ ├─┬ get-pkg-repo@1.3.0 
│ │ │ │ ├── parse-github-repo-url@1.4.0 
│ │ │ │ └─┬ through2@2.0.3 
│ │ │ │   └── xtend@4.0.1 
│ │ │ ├─┬ git-remote-origin-url@2.0.0 
│ │ │ │ └── gitconfiglocal@1.0.0 
│ │ │ └─┬ through2@2.0.3 
│ │ │   └── xtend@4.0.1 
│ │ ├── conventional-changelog-ember@0.2.5 
│ │ ├── conventional-changelog-eslint@0.1.0 
│ │ ├── conventional-changelog-express@0.1.0 
│ │ ├── conventional-changelog-jquery@0.1.0 
│ │ ├── conventional-changelog-jscs@0.1.0 
│ │ └── conventional-changelog-jshint@0.1.0 
│ ├─┬ conventional-recommended-bump@1.0.0 
│ │ ├─┬ conventional-commits-filter@1.0.0 
│ │ │ ├── is-subset@0.1.1 
│ │ │ └── modify-values@1.0.0 
│ │ ├─┬ conventional-commits-parser@1.3.0 
│ │ │ ├─┬ is-text-path@1.0.1 
│ │ │ │ └── text-extensions@1.5.0 
│ │ │ ├─┬ JSONStream@1.3.1 
│ │ │ │ └── jsonparse@1.3.1 
│ │ │ ├─┬ split2@2.1.1 
│ │ │ │ └─┬ through2@2.0.3 
│ │ │ │   └── xtend@4.0.1 
│ │ │ ├─┬ through2@2.0.3 
│ │ │ │ └── xtend@4.0.1 
│ │ │ └── trim-off-newlines@1.0.1 
│ │ ├─┬ git-raw-commits@1.2.0 
│ │ │ ├── dargs@4.1.0 
│ │ │ ├─┬ lodash.template@4.4.0 
│ │ │ │ ├── lodash._reinterpolate@3.0.0 
│ │ │ │ └── lodash.templatesettings@4.1.0 
│ │ │ └─┬ through2@2.0.3 
│ │ │   └── xtend@4.0.1 
│ │ └── git-semver-tags@1.2.0 
│ ├── figures@1.7.0 
│ ├─┬ fs-access@1.0.1 
│ │ └── null-check@1.0.0 
│ ├── semver@5.3.0 
│ └─┬ yargs@8.0.2 
│   ├── camelcase@4.1.0 
│   ├─┬ os-locale@2.0.0 
│   │ ├─┬ execa@0.5.1 
│   │ │ ├── cross-spawn@4.0.2 
│   │ │ ├── get-stream@2.3.1 
│   │ │ ├── is-stream@1.1.0 
│   │ │ ├─┬ npm-run-path@2.0.2 
│   │ │ │ └── path-key@2.0.1 
│   │ │ ├── p-finally@1.0.0 
│   │ │ └── strip-eof@1.0.0 
│   │ └─┬ mem@1.1.0 
│   │   └── mimic-fn@1.1.0 
│   ├─┬ read-pkg-up@2.0.0 
│   │ ├─┬ find-up@2.1.0 
│   │ │ └─┬ locate-path@2.0.0 
│   │ │   ├─┬ p-locate@2.0.0 
│   │ │   │ └── p-limit@1.1.0 
│   │ │   └── path-exists@3.0.0 
│   │ └─┬ read-pkg@2.0.0 
│   │   ├─┬ load-json-file@2.0.0 
│   │   │ └── strip-bom@3.0.0 
│   │   └── path-type@2.0.0 
│   ├─┬ string-width@2.0.0 
│   │ └── is-fullwidth-code-point@2.0.0 
│   ├── which-module@2.0.0 
│   └─┬ yargs-parser@7.0.0 
│     └── camelcase@4.1.0 
├─┬ stylelint@7.11.1 
│ ├─┬ autoprefixer@6.7.7 
│ │ ├─┬ browserslist@1.7.7 
│ │ │ └── electron-to-chromium@1.3.14 
│ │ ├── caniuse-db@1.0.30000686 
│ │ ├── normalize-range@0.1.2 
│ │ └── num2fraction@1.2.2 
│ ├── balanced-match@0.4.2 
│ ├─┬ colorguard@1.2.0 
│ │ ├── color-diff@0.1.7 
│ │ ├─┬ pipetteur@2.0.3 
│ │ │ ├── onecolor@3.0.4 
│ │ │ └─┬ synesthesia@1.0.1 
│ │ │   └── css-color-names@0.0.3 
│ │ ├─┬ plur@2.1.2 
│ │ │ └── irregular-plurals@1.2.0 
│ │ ├── postcss-reporter@1.4.1 
│ │ ├── text-table@0.2.0 
│ │ └── yargs@1.3.3 
│ ├─┬ cosmiconfig@2.1.3 
│ │ ├── is-directory@0.3.1 
│ │ ├─┬ js-yaml@3.8.4 
│ │ │ └─┬ argparse@1.0.9 
│ │ │   └── sprintf-js@1.0.3 
│ │ ├── minimist@1.2.0 
│ │ ├── os-homedir@1.0.2 
│ │ ├─┬ parse-json@2.2.0 
│ │ │ └─┬ error-ex@1.3.1 
│ │ │   └── is-arrayish@0.2.1 
│ │ └── require-from-string@1.2.1 
│ ├─┬ doiuse@2.6.0 
│ │ ├─┬ css-rule-stream@1.1.0 
│ │ │ ├─┬ css-tokenize@1.0.1 
│ │ │ │ └─┬ readable-stream@1.1.14 
│ │ │ │   ├── isarray@0.0.1 
│ │ │ │   └── string_decoder@0.10.31 
│ │ │ └─┬ through2@0.6.5 
│ │ │   ├─┬ readable-stream@1.0.34 
│ │ │   │ ├── isarray@0.0.1 
│ │ │   │ └── string_decoder@0.10.31 
│ │ │   └── xtend@4.0.1 
│ │ ├─┬ duplexer2@0.0.2 
│ │ │ └─┬ readable-stream@1.1.14 
│ │ │   ├── isarray@0.0.1 
│ │ │   └── string_decoder@0.10.31 
│ │ ├─┬ jsonfilter@1.1.2 
│ │ │ ├─┬ JSONStream@0.8.4 
│ │ │ │ └── jsonparse@0.0.5 
│ │ │ ├── minimist@1.2.0 
│ │ │ ├── stream-combiner@0.2.2 
│ │ │ └─┬ through2@0.6.5 
│ │ │   ├─┬ readable-stream@1.0.34 
│ │ │   │ ├── isarray@0.0.1 
│ │ │   │ └── string_decoder@0.10.31 
│ │ │   └── xtend@4.0.1 
│ │ ├─┬ ldjson-stream@1.2.1 
│ │ │ ├── split2@0.2.1 
│ │ │ └─┬ through2@0.6.5 
│ │ │   ├─┬ readable-stream@1.0.34 
│ │ │   │ ├── isarray@0.0.1 
│ │ │   │ └── string_decoder@0.10.31 
│ │ │   └── xtend@4.0.1 
│ │ ├─┬ multimatch@2.1.0 
│ │ │ ├── array-differ@1.0.0 
│ │ │ └── arrify@1.0.1 
│ │ ├─┬ source-map@0.4.4 
│ │ │ └── amdefine@1.0.1 
│ │ ├─┬ through2@0.6.5 
│ │ │ ├─┬ readable-stream@1.0.34 
│ │ │ │ ├── isarray@0.0.1 
│ │ │ │ └── string_decoder@0.10.31 
│ │ │ └── xtend@4.0.1 
│ │ └─┬ yargs@3.32.0 
│ │   ├── os-locale@1.4.0 
│ │   └── window-size@0.1.4 
│ ├─┬ execall@1.0.0 
│ │ └─┬ clone-regexp@1.0.0 
│ │   ├── is-regexp@1.0.0 
│ │   └── is-supported-regexp-flag@1.0.0 
│ ├─┬ file-entry-cache@2.0.0 
│ │ └─┬ flat-cache@1.2.2 
│ │   ├── circular-json@0.3.1 
│ │   ├─┬ del@2.2.2 
│ │   │ ├── globby@5.0.0 
│ │   │ ├── is-path-cwd@1.0.0 
│ │   │ └─┬ is-path-in-cwd@1.0.0 
│ │   │   └─┬ is-path-inside@1.0.0 
│ │   │     └── path-is-inside@1.0.2 
│ │   └── write@0.2.1 
│ ├── get-stdin@5.0.1 
│ ├─┬ globby@6.1.0 
│ │ ├─┬ array-union@1.0.2 
│ │ │ └── array-uniq@1.0.3 
│ │ └─┬ pinkie-promise@2.0.1 
│ │   └── pinkie@2.0.4 
│ ├── globjoin@0.1.4 
│ ├── html-tags@1.1.1 
│ ├── ignore@3.3.3 
│ ├── imurmurhash@0.1.4 
│ ├── known-css-properties@0.2.0 
│ ├── log-symbols@1.0.2 
│ ├── mathml-tag-names@2.0.0 
│ ├─┬ micromatch@2.3.11 
│ │ ├─┬ arr-diff@2.0.0 
│ │ │ └── arr-flatten@1.0.3 
│ │ ├── array-unique@0.2.1 
│ │ ├─┬ braces@1.8.5 
│ │ │ ├─┬ expand-range@1.8.2 
│ │ │ │ └─┬ fill-range@2.2.3 
│ │ │ │   ├── is-number@2.1.0 
│ │ │ │   ├── isobject@2.1.0 
│ │ │ │   ├─┬ randomatic@1.1.7 
│ │ │ │   │ ├─┬ is-number@3.0.0 
│ │ │ │   │ │ └── kind-of@3.2.2 
│ │ │ │   │ └── kind-of@4.0.0 
│ │ │ │   └── repeat-string@1.6.1 
│ │ │ ├── preserve@0.2.0 
│ │ │ └── repeat-element@1.1.2 
│ │ ├─┬ expand-brackets@0.1.5 
│ │ │ └── is-posix-bracket@0.1.1 
│ │ ├─┬ extglob@0.3.2 
│ │ │ └── is-extglob@1.0.0 
│ │ ├── filename-regex@2.0.1 
│ │ ├── is-extglob@1.0.0 
│ │ ├── is-glob@2.0.1 
│ │ ├─┬ normalize-path@2.1.1 
│ │ │ └── remove-trailing-separator@1.0.2 
│ │ ├─┬ object.omit@2.0.1 
│ │ │ └── for-own@0.1.5 
│ │ ├─┬ parse-glob@3.0.4 
│ │ │ ├─┬ glob-base@0.3.0 
│ │ │ │ └─┬ 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 
│ │ └─┬ regex-cache@0.4.3 
│ │   ├── is-equal-shallow@0.1.3 
│ │   └── is-primitive@2.0.0 
│ ├── normalize-selector@0.2.0 
│ ├── pify@2.3.0 
│ ├─┬ postcss@5.2.17 
│ │ ├── js-base64@2.1.9 
│ │ └── supports-color@3.2.3 
│ ├── postcss-less@0.14.0 
│ ├── postcss-media-query-parser@0.2.3 
│ ├── postcss-reporter@3.0.0 
│ ├── postcss-resolve-nested-selector@0.1.1 
│ ├── postcss-scss@0.4.1 
│ ├─┬ postcss-selector-parser@2.2.3 
│ │ ├── flatten@1.0.2 
│ │ ├── indexes-of@1.0.1 
│ │ └── uniq@1.0.1 
│ ├── postcss-value-parser@3.3.0 
│ ├── resolve-from@3.0.0 
│ ├── specificity@0.3.0 
│ ├─┬ string-width@2.0.0 
│ │ └── is-fullwidth-code-point@2.0.0 
│ ├── style-search@0.1.0 
│ ├─┬ stylehacks@2.3.2 
│ │ ├── minimist@1.2.0 
│ │ ├── postcss-reporter@1.4.1 
│ │ ├─┬ read-file-stdin@0.2.1 
│ │ │ └── gather-stream@1.0.0 
│ │ └── write-file-stdout@0.0.2 
│ ├── sugarss@0.2.0 
│ ├── svg-tags@1.0.0 
│ └─┬ table@4.0.1 
│   ├── ajv-keywords@1.5.1 
│   ├── slice-ansi@0.0.4 
│   └─┬ string-width@2.0.0 
│     └── is-fullwidth-code-point@2.0.0 
├── sudo-prompt@7.0.0 
├─┬ ts-loader@2.1.0 
│ └── enhanced-resolve@3.1.0 
├─┬ tslint@5.1.0 
│ ├─┬ babel-code-frame@6.22.0 
│ │ ├── esutils@2.0.2 
│ │ └── js-tokens@3.0.1 
│ ├── diff@3.2.0 
│ ├─┬ findup-sync@0.3.0 
│ │ └── glob@5.0.15 
│ ├─┬ optimist@0.6.1 
│ │ └── wordwrap@0.0.3 
│ ├─┬ resolve@1.3.3 
│ │ └── path-parse@1.0.5 
│ └── tsutils@1.9.1 
├── typescript@2.3.4 
├─┬ usb@1.2.2  (git+https://github.com/aktary/node-usb.git#86fb8bd9342a4e6da4146398a8828d32ab31fbcd)
│ └─┬ node-pre-gyp@0.6.36 
│   ├── nopt@4.0.1 
│   └─┬ tar-pack@3.4.0 
│     ├── fstream-ignore@1.0.5 
│     └── uid-number@0.0.6 
├─┬ webpack@2.6.1 
│ ├── acorn@5.0.3 
│ ├─┬ acorn-dynamic-import@2.0.2 
│ │ └── acorn@4.0.13 
│ ├─┬ ajv@4.11.8 
│ │ ├── co@4.6.0 
│ │ └── json-stable-stringify@1.0.1 
│ ├── ajv-keywords@1.5.1 
│ ├── interpret@1.0.3 
│ ├── json5@0.5.1 
│ ├── loader-runner@2.3.0 
│ ├── loader-utils@0.2.17 
│ ├─┬ memory-fs@0.4.1 
│ │ └─┬ errno@0.1.4 
│ │   └── prr@0.0.0 
│ ├─┬ node-libs-browser@2.0.0 
│ │ ├── assert@1.4.1 
│ │ ├─┬ browserify-zlib@0.1.4 
│ │ │ └── pako@0.2.9 
│ │ ├── buffer@4.9.1 
│ │ ├─┬ 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 
│ │ │ │ └── evp_bytestokey@1.0.0 
│ │ │ ├─┬ browserify-sign@4.0.4 
│ │ │ │ ├── bn.js@4.11.6 
│ │ │ │ ├── browserify-rsa@4.0.1 
│ │ │ │ ├─┬ elliptic@6.4.0 
│ │ │ │ │ ├── brorand@1.1.0 
│ │ │ │ │ ├── hash.js@1.0.3 
│ │ │ │ │ ├── hmac-drbg@1.0.1 
│ │ │ │ │ └── minimalistic-crypto-utils@1.0.1 
│ │ │ │ └─┬ parse-asn1@5.1.0 
│ │ │ │   └── asn1.js@4.9.1 
│ │ │ ├── create-ecdh@4.0.0 
│ │ │ ├─┬ create-hash@1.1.3 
│ │ │ │ ├── cipher-base@1.0.3 
│ │ │ │ ├─┬ ripemd160@2.0.1 
│ │ │ │ │ └── hash-base@2.0.2 
│ │ │ │ └── sha.js@2.4.8 
│ │ │ ├── create-hmac@1.1.6 
│ │ │ ├─┬ diffie-hellman@5.0.2 
│ │ │ │ └── miller-rabin@4.0.0 
│ │ │ ├── pbkdf2@3.0.12 
│ │ │ ├── public-encrypt@4.0.0 
│ │ │ └─┬ randombytes@2.0.5 
│ │ │   └── safe-buffer@5.1.0 
│ │ ├── domain-browser@1.1.7 
│ │ ├── events@1.1.1 
│ │ ├── https-browserify@0.0.1 
│ │ ├── os-browserify@0.2.1 
│ │ ├── path-browserify@0.0.0 
│ │ ├── punycode@1.4.1 
│ │ ├── querystring-es3@0.2.1 
│ │ ├── stream-browserify@2.0.1 
│ │ ├─┬ stream-http@2.7.2 
│ │ │ ├── builtin-status-codes@3.0.0 
│ │ │ ├── to-arraybuffer@1.0.1 
│ │ │ └── xtend@4.0.1 
│ │ ├── string_decoder@0.10.31 
│ │ ├─┬ timers-browserify@2.0.2 
│ │ │ └── setimmediate@1.0.5 
│ │ ├── tty-browserify@0.0.0 
│ │ ├─┬ url@0.11.0 
│ │ │ ├── punycode@1.3.2 
│ │ │ └── querystring@0.2.0 
│ │ └─┬ vm-browserify@0.0.4 
│ │   └── indexof@0.0.1 
│ ├── source-map@0.5.6 
│ ├─┬ supports-color@3.2.3 
│ │ └── has-flag@1.0.0 
│ ├── tapable@0.2.6 
│ ├─┬ uglify-js@2.8.29 
│ │ ├── 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 
│ │   │ │ │ └── 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.3.1 
│ ├─┬ webpack-sources@0.2.3 
│ │ └── source-list-map@1.1.2 
│ └─┬ yargs@6.6.0 
│   ├── camelcase@3.0.0 
│   ├── cliui@3.2.0 
│   ├── os-locale@1.4.0 
│   ├── which-module@1.0.0 
│   └─┬ yargs-parser@4.2.1 
│     └── camelcase@3.0.0 
├─┬ webpack-dev-server@2.4.5 
│ ├── ansi-html@0.0.7 
│ ├─┬ chokidar@1.7.0 
│ │ ├── anymatch@1.3.0 
│ │ ├── async-each@1.0.1 
│ │ ├─┬ glob-parent@2.0.0 
│ │ │ └─┬ is-glob@2.0.1 
│ │ │   └── is-extglob@1.0.0 
│ │ ├─┬ is-binary-path@1.0.1 
│ │ │ └── binary-extensions@1.8.0 
│ │ ├─┬ is-glob@2.0.1 
│ │ │ └── is-extglob@1.0.0 
│ │ └─┬ readdirp@2.1.0 
│ │   └── set-immediate-shim@1.0.1 
│ ├─┬ compression@1.6.2 
│ │ ├─┬ accepts@1.3.3 
│ │ │ └── negotiator@0.6.1 
│ │ ├── bytes@2.3.0 
│ │ ├── compressible@2.0.10 
│ │ ├─┬ debug@2.2.0 
│ │ │ └── ms@0.7.1 
│ │ ├── on-headers@1.0.1 
│ │ └── vary@1.1.1 
│ ├── connect-history-api-fallback@1.3.0 
│ ├─┬ express@4.15.3 
│ │ ├── array-flatten@1.1.1 
│ │ ├── content-disposition@0.5.2 
│ │ ├── content-type@1.0.2 
│ │ ├── cookie@0.3.1 
│ │ ├── cookie-signature@1.0.6 
│ │ ├── debug@2.6.7 
│ │ ├── depd@1.1.0 
│ │ ├── encodeurl@1.0.1 
│ │ ├── escape-html@1.0.3 
│ │ ├── etag@1.8.0 
│ │ ├─┬ finalhandler@1.0.3 
│ │ │ ├── debug@2.6.7 
│ │ │ └── unpipe@1.0.0 
│ │ ├── fresh@0.5.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.4 
│ │ │ ├── forwarded@0.1.0 
│ │ │ └── ipaddr.js@1.3.0 
│ │ ├── range-parser@1.2.0 
│ │ ├─┬ send@0.15.3 
│ │ │ ├── debug@2.6.7 
│ │ │ ├── destroy@1.0.4 
│ │ │ └── mime@1.3.4 
│ │ ├── serve-static@1.12.3 
│ │ ├── setprototypeof@1.0.3 
│ │ ├── statuses@1.3.1 
│ │ ├─┬ type-is@1.6.15 
│ │ │ └── media-typer@0.3.0 
│ │ └── utils-merge@1.0.0 
│ ├── html-entities@1.2.1 
│ ├─┬ http-proxy-middleware@0.17.4 
│ │ └─┬ http-proxy@1.16.2 
│ │   ├── eventemitter3@1.2.0 
│ │   └── requires-port@1.0.0 
│ ├── opn@4.0.2 
│ ├─┬ portfinder@1.0.13 
│ │ └── async@1.5.2 
│ ├─┬ serve-index@1.9.0 
│ │ ├── batch@0.6.1 
│ │ └── http-errors@1.6.1 
│ ├─┬ sockjs@0.3.18 
│ │ ├─┬ faye-websocket@0.10.0 
│ │ │ └─┬ websocket-driver@0.6.5 
│ │ │   └── websocket-extensions@0.1.1 
│ │ └── uuid@2.0.3 
│ ├─┬ sockjs-client@1.1.2 
│ │ ├─┬ eventsource@0.1.6 
│ │ │ └─┬ original@1.0.0 
│ │ │   └─┬ url-parse@1.0.5 
│ │ │     └── querystringify@0.0.4 
│ │ ├── faye-websocket@0.11.1 
│ │ ├── json3@3.3.2 
│ │ └─┬ url-parse@1.1.9 
│ │   └── querystringify@1.0.0 
│ ├─┬ spdy@3.4.7 
│ │ ├── handle-thing@1.2.5 
│ │ ├── http-deceiver@1.2.7 
│ │ ├── select-hose@2.0.0 
│ │ └─┬ spdy-transport@2.0.20 
│ │   ├── detect-node@2.0.3 
│ │   ├── hpack.js@2.1.6 
│ │   ├── obuf@1.1.1 
│ │   └─┬ wbuf@1.7.2 
│ │     └── minimalistic-assert@1.0.0 
│ ├─┬ strip-ansi@3.0.1 
│ │ └── ansi-regex@2.1.1 
│ ├── supports-color@3.2.3 
│ ├─┬ webpack-dev-middleware@1.10.2 
│ │ └── mime@1.3.6 
│ └─┬ yargs@6.6.0 
│   ├── camelcase@3.0.0 
│   ├── os-locale@1.4.0 
│   ├── which-module@1.0.0 
│   └── yargs-parser@4.2.1 
├─┬ webpack-svgstore-plugin@4.0.0 
│ ├── async@2.1.4 
│ ├─┬ htmlparser2@3.9.2 
│ │ ├── domelementtype@1.3.0 
│ │ ├── domhandler@2.4.1 
│ │ ├─┬ domutils@1.6.2 
│ │ │ └─┬ dom-serializer@0.1.0 
│ │ │   └── domelementtype@1.1.3 
│ │ └── entities@1.1.1 
│ ├── lodash@4.17.2 
│ ├─┬ pug@2.0.0-beta6 
│ │ ├─┬ pug-code-gen@1.1.1 
│ │ │ ├─┬ constantinople@3.1.0 
│ │ │ │ ├── acorn@3.3.0 
│ │ │ │ └─┬ is-expression@2.1.0 
│ │ │ │   └── acorn@3.3.0 
│ │ │ ├── doctypes@1.1.0 
│ │ │ ├── js-stringify@1.0.2 
│ │ │ ├── pug-attrs@2.0.2 
│ │ │ ├── pug-error@1.3.2 
│ │ │ ├── void-elements@2.0.1 
│ │ │ └─┬ with@5.1.1 
│ │ │   ├── acorn@3.3.0 
│ │ │   └─┬ acorn-globals@3.1.0 
│ │ │     └── acorn@4.0.13 
│ │ ├─┬ pug-filters@1.2.4 
│ │ │ ├─┬ clean-css@3.4.27 
│ │ │ │ ├── commander@2.8.1 
│ │ │ │ └── source-map@0.4.4 
│ │ │ ├─┬ jstransformer@1.0.0 
│ │ │ │ ├── is-promise@2.1.0 
│ │ │ │ └─┬ promise@7.3.0 
│ │ │ │   └── asap@2.0.5 
│ │ │ ├── pug-walk@1.1.3 
│ │ │ └─┬ uglify-js@2.8.29 
│ │ │   ├── source-map@0.5.6 
│ │ │   └─┬ yargs@3.10.0 
│ │ │     ├── camelcase@1.2.1 
│ │ │     └─┬ cliui@2.1.0 
│ │ │       └── wordwrap@0.0.2 
│ │ ├─┬ pug-lexer@2.3.2 
│ │ │ ├── character-parser@2.2.0 
│ │ │ └─┬ is-expression@3.0.0 
│ │ │   └── acorn@4.0.13 
│ │ ├── pug-linker@1.0.2 
│ │ ├── pug-load@2.0.7 
│ │ ├─┬ pug-parser@2.0.2 
│ │ │ └── token-stream@0.0.1 
│ │ ├── pug-runtime@2.0.3 
│ │ └── pug-strip-comments@1.0.2 
│ └─┬ svgo@0.7.1 
│   ├── coa@1.0.3 
│   ├─┬ csso@2.2.1 
│   │ └── clap@1.2.0 
│   ├─┬ js-yaml@3.6.1 
│   │ └── esprima@2.7.3 
│   ├── sax@1.2.2 
│   └── whet.extend@0.9.9 
├─┬ xml-loader@1.2.1 
│ └─┬ xml2js@0.4.17 
│   └── xmlbuilder@4.2.1 
└── zone.js@0.8.5 

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: 7zip-bin-win@^2.1.0 (node_modules/7zip-bin/node_modules/7zip-bin-win):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for 7zip-bin-win@2.1.0: wanted {"os":"win32","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: 7zip-bin-mac@^1.0.1 (node_modules/7zip-bin/node_modules/7zip-bin-mac):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for 7zip-bin-mac@1.0.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN ng2-dragula@1.3.1 requires a peer of @angular/compiler@2.4.3 but none was installed.
npm WARN ng2-dragula@1.3.1 requires a peer of @angular/forms@2.4.3 but none was installed.
npm WARN ng2-select2@1.0.0-beta.10 requires a peer of @angular/core@^2.2.0 but none was installed.
npm WARN @ngrx/store-log-monitor@3.0.2 requires a peer of @angular/core@^2.0.0-rc.6 but none was installed.
npm WARN ajv-keywords@2.1.0 requires a peer of ajv@>=5.0.0 but none was installed.
npm ERR! Linux 4.8.0-39-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "i"
npm ERR! node v7.10.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1

npm ERR! fcopy-pre-bundled@0.1.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the fcopy-pre-bundled@0.1.2 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the fcopy-pre-bundled package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs fcopy-pre-bundled
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls fcopy-pre-bundled
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/laci/.npm/_logs/2017-06-16T22_28_57_677Z-debug.log
fjozsef commented 7 years ago

It was because of electron-builder. I've updated it, now it should work. For the long term solution I will try to come up with something.

mondalaci commented 7 years ago

@fjozsef Works like a charm, you're the man!

As for the long term solution, maybe hardcoding package.json version numbers is not the best way. How about using package-lock.json? Any alternatives are welcome.

I keep this issue open to discuss the best solution.

attilacsanyi commented 7 years ago

I use yarn which is 10 times faster and has the same lock file approach which also should be checked in 😎

mondalaci commented 7 years ago

Good point, @attilacsanyi! Wondering whether we should move to yarn. I read however that npm 5 matches and maybe surpasses the speed of yarn, so maybe it's not beneficial.

attilacsanyi commented 7 years ago

Just another note guys, i experienced the same npm install issue, which was resolved with both clearing node_modules and update node version to the latest.

For package versions i always use specific version numbers and upgrade only if i have already tested the app, so i can avoid the situation when another developer automatically install newer version due to ^ npm versioning.

Any lock file solution (yarn or npm 5) also help in this to freeze the dependency tree.

fjozsef commented 7 years ago

It looks like we can't shrinkwrap it, because of an unmeet peer dependecy of ng2-select2.

ng2-select2@1.0.0-beta.10 requires a peer of @angular/core@^2.2.0 but none was installed.

ert78gb commented 7 years ago

The npm 5 is good for me. Did you tried build the app with node 8.x? I did not have time, yet. I think the long term solution is a greenkeeper.io. But need fully automata tested app for it. Short term solution fix many package version that is possible.

mondalaci commented 7 years ago

@ert78gb I haven't tried node 8.x yet, but @fjozsef is just looking into it. npm 5 is probably the way to go. It'll automatically update package.json and package-lock.json which will solve issues like this one.

fjozsef commented 7 years ago

Our postinstall script fails on windows with node v8.1.2 and npm 5.0.3. We should wait for a newer version which fix the problem.

ert78gb commented 7 years ago

Why we don't freeze the version of all package? I will do it just approve it :)

attilacsanyi commented 7 years ago

@fjozsef under Mac npm install is fine

ert78gb commented 7 years ago

We have to make a decision which node version we will use under test end development.

fjozsef commented 7 years ago

@attilacsanyi It is a windows only bug.

mondalaci commented 7 years ago

@ert78gb According to my knowledge it's not possible to freeze package versions due to some misbehaving packages. Would you elaborate about it, @fjozsef?

fjozsef commented 7 years ago

http://jpospisil.com/2017/06/02/understanding-lock-files-in-npm-5.html "Note that pointing to a specific version of a dependency in package.json is not good enough because you want to make sure the end users get the exact same dependency tree including all of its sub-dependencies. A specific version in package.json guarantees the version only at the top level."