openwhyd / openwhyd-electron

💻 Install Openwhyd on your computer, play music in the background
https://openwhyd.org/download
17 stars 5 forks source link

Reduce size of distributed binary #22

Closed adrienjoly closed 4 years ago

adrienjoly commented 6 years ago

Version 0.2 was ~100 MB Version 1.0 rc1 is ~200MB

=> Let's see why the size of the binaries has grown that much and what we can do to reduce it!

adrienjoly commented 6 years ago

Size of the node_modules folder: 138 596 539 bytes (155,7 MB on disk) for 6 570 items

openwhyd-electron$ npm ls
openwhyd-electron@1.0.0-rc.1 /Users/adrienjoly/Dev/openwhyd/openwhyd-electron
├─┬ electron@1.4.13
│ ├─┬ electron-download@3.3.0
│ │ ├── debug@2.6.0 deduped
│ │ ├─┬ fs-extra@0.30.0
│ │ │ ├── graceful-fs@4.1.11 deduped
│ │ │ ├── jsonfile@2.4.0 deduped
│ │ │ ├── klaw@1.3.1 deduped
│ │ │ ├── path-is-absolute@1.0.1
│ │ │ └─┬ rimraf@2.5.4
│ │ │   └── glob@7.1.1 deduped
│ │ ├── home-path@1.0.6
│ │ ├── minimist@1.2.0 deduped
│ │ ├── nugget@2.0.1 deduped
│ │ ├─┬ path-exists@2.1.0
│ │ │ └─┬ pinkie-promise@2.0.1
│ │ │   └── pinkie@2.0.4
│ │ ├── rc@1.2.8 deduped
│ │ ├── semver@5.3.0 deduped
│ │ └─┬ sumchecker@1.3.1
│ │   ├── debug@2.6.0 deduped
│ │   └── es6-promise@4.2.4
│ └─┬ extract-zip@1.6.0
│   ├─┬ concat-stream@1.5.0
│   │ ├── inherits@2.0.3
│   │ ├─┬ readable-stream@2.0.6
│   │ │ ├── core-util-is@1.0.2
│   │ │ ├── inherits@2.0.3 deduped
│   │ │ ├── isarray@1.0.0
│   │ │ ├── process-nextick-args@1.0.7
│   │ │ ├── string_decoder@0.10.31
│   │ │ └── util-deprecate@1.0.2
│   │ └── typedarray@0.0.6
│   ├── debug@0.7.4
│   ├─┬ mkdirp@0.5.0
│   │ └── minimist@0.0.8
│   └─┬ yauzl@2.4.1
│     └─┬ fd-slicer@1.0.1
│       └── pend@1.2.0
├─┬ electron-debug@1.4.0
│ ├── electron-is-dev@0.3.0
│ └─┬ electron-localshortcut@3.0.2
│   ├─┬ debug@2.6.9
│   │ └── ms@2.0.0
│   ├── electron-is-accelerator@0.1.2
│   ├── keyboardevent-from-electron-accelerator@0.7.1
│   └── keyboardevents-areequal@0.2.2
├─┬ electron-download@4.1.0
│ ├─┬ debug@2.6.0
│ │ └── ms@0.7.2
│ ├── env-paths@1.0.0
│ ├─┬ fs-extra@2.1.2
│ │ ├── graceful-fs@4.1.11
│ │ └─┬ jsonfile@2.4.0
│ │   └── graceful-fs@4.1.11 deduped
│ ├── minimist@1.2.0
│ ├─┬ nugget@2.0.1
│ │ ├── debug@2.6.0 deduped
│ │ ├── minimist@1.2.0 deduped
│ │ ├─┬ pretty-bytes@1.0.4
│ │ │ ├── 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
│ │ │   ├─┬ 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 deduped
│ │ │   ├─┬ normalize-package-data@2.3.5
│ │ │   │ ├── hosted-git-info@2.1.5
│ │ │   │ ├─┬ is-builtin-module@1.0.0
│ │ │   │ │ └── builtin-modules@1.1.1 deduped
│ │ │   │ ├── semver@5.3.0 deduped
│ │ │   │ └─┬ validate-npm-package-license@3.0.1
│ │ │   │   ├─┬ spdx-correct@1.0.2
│ │ │   │   │ └── spdx-license-ids@1.2.2
│ │ │   │   └── spdx-expression-parse@1.0.4
│ │ │   ├── object-assign@4.1.0 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.11 deduped
│ │ │   │   │ ├── parse-json@2.2.0 deduped
│ │ │   │   │ ├── pify@2.3.0 deduped
│ │ │   │   │ ├── pinkie-promise@2.0.1 deduped
│ │ │   │   │ └─┬ strip-bom@2.0.0
│ │ │   │   │   └── is-utf8@0.2.1
│ │ │   │   ├── normalize-package-data@2.3.5 deduped
│ │ │   │   └─┬ path-type@1.1.0
│ │ │   │     ├── graceful-fs@4.1.11 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
│ │ │   │ │   └─┬ is-finite@1.0.2
│ │ │   │ │     └── number-is-nan@1.0.1 deduped
│ │ │   │ └─┬ strip-indent@1.0.1
│ │ │   │   └── get-stdin@4.0.1 deduped
│ │ │   └── trim-newlines@1.0.0
│ │ ├─┬ progress-stream@1.2.0
│ │ │ ├── speedometer@0.1.4
│ │ │ └─┬ through2@0.2.3
│ │ │   ├─┬ 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 deduped
│ │ │   └─┬ xtend@2.1.2
│ │ │     └── object-keys@0.4.0
│ │ ├─┬ request@2.88.0
│ │ │ ├── aws-sign2@0.7.0
│ │ │ ├── aws4@1.8.0
│ │ │ ├── caseless@0.12.0
│ │ │ ├─┬ combined-stream@1.0.6
│ │ │ │ └── delayed-stream@1.0.0
│ │ │ ├── extend@3.0.2
│ │ │ ├── forever-agent@0.6.1
│ │ │ ├─┬ form-data@2.3.2
│ │ │ │ ├── asynckit@0.4.0
│ │ │ │ ├── combined-stream@1.0.6 deduped
│ │ │ │ └── mime-types@2.1.19 deduped
│ │ │ ├─┬ har-validator@5.1.0
│ │ │ │ ├── ajv@5.5.2 deduped
│ │ │ │ └── har-schema@2.0.0
│ │ │ ├─┬ http-signature@1.2.0
│ │ │ │ ├── assert-plus@1.0.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.14.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
│ │ │ │   └── tweetnacl@0.14.5
│ │ │ ├── is-typedarray@1.0.0
│ │ │ ├── isstream@0.1.2
│ │ │ ├── json-stringify-safe@5.0.1
│ │ │ ├─┬ mime-types@2.1.19
│ │ │ │ └── mime-db@1.35.0
│ │ │ ├── oauth-sign@0.9.0
│ │ │ ├── performance-now@2.1.0
│ │ │ ├── qs@6.5.2
│ │ │ ├── safe-buffer@5.1.2
│ │ │ ├─┬ tough-cookie@2.4.3
│ │ │ │ ├── psl@1.1.29
│ │ │ │ └── punycode@1.4.1
│ │ │ ├─┬ tunnel-agent@0.6.0
│ │ │ │ └── safe-buffer@5.1.2 deduped
│ │ │ └── uuid@3.3.2
│ │ ├─┬ single-line-log@1.1.2
│ │ │ └─┬ string-width@1.0.2
│ │ │   ├── code-point-at@1.1.0
│ │ │   ├─┬ is-fullwidth-code-point@1.0.0
│ │ │   │ └── number-is-nan@1.0.1
│ │ │   └─┬ strip-ansi@3.0.1
│ │ │     └── ansi-regex@2.0.0
│ │ └── throttleit@0.0.2
│ ├── path-exists@3.0.0
│ ├─┬ rc@1.2.8
│ │ ├── deep-extend@0.6.0
│ │ ├── ini@1.3.5
│ │ ├── minimist@1.2.0 deduped
│ │ └── strip-json-comments@2.0.1
│ ├── semver@5.3.0
│ └─┬ sumchecker@2.0.2
│   └── debug@2.6.0 deduped
├─┬ electron-packager@8.4.0
│ ├─┬ asar@0.12.4
│ │ ├── chromium-pickle-js@0.2.0
│ │ ├─┬ commander@2.9.0
│ │ │ └── graceful-readlink@1.0.1
│ │ ├── cuint@0.2.2
│ │ ├─┬ glob@6.0.4
│ │ │ ├─┬ inflight@1.0.6
│ │ │ │ ├── once@1.4.0 deduped
│ │ │ │ └── wrappy@1.0.2
│ │ │ ├── inherits@2.0.3 deduped
│ │ │ ├── minimatch@3.0.3 deduped
│ │ │ ├─┬ once@1.4.0
│ │ │ │ └── wrappy@1.0.2 deduped
│ │ │ └── path-is-absolute@1.0.1 deduped
│ │ ├─┬ minimatch@3.0.3
│ │ │ └─┬ brace-expansion@1.1.6
│ │ │   ├── balanced-match@0.4.2
│ │ │   └── concat-map@0.0.1
│ │ ├── mkdirp@0.5.0 deduped
│ │ ├─┬ mksnapshot@0.3.0
│ │ │ ├─┬ 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.11 deduped
│ │ │ │ ├── mkpath@0.1.0
│ │ │ │ ├─┬ nopt@3.0.6
│ │ │ │ │ └── abbrev@1.0.9
│ │ │ │ ├── q@1.4.1
│ │ │ │ ├── readable-stream@1.1.14 deduped
│ │ │ │ └─┬ touch@0.0.3
│ │ │ │   └─┬ nopt@1.0.10
│ │ │ │     └── abbrev@1.0.9 deduped
│ │ │ ├─┬ fs-extra@0.26.7
│ │ │ │ ├── graceful-fs@4.1.11 deduped
│ │ │ │ ├── jsonfile@2.4.0 deduped
│ │ │ │ ├── klaw@1.3.1 deduped
│ │ │ │ ├── path-is-absolute@1.0.1 deduped
│ │ │ │ └── rimraf@2.5.4 deduped
│ │ │ └─┬ request@2.55.0
│ │ │   ├── aws-sign2@0.5.0
│ │ │   ├─┬ bl@0.9.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
│ │ │   ├── caseless@0.9.0
│ │ │   ├─┬ combined-stream@0.0.7
│ │ │   │ └── delayed-stream@0.0.5
│ │ │   ├── forever-agent@0.6.1 deduped
│ │ │   ├─┬ form-data@0.2.0
│ │ │   │ ├── async@0.9.2
│ │ │   │ ├── combined-stream@0.0.7 deduped
│ │ │   │ └── mime-types@2.0.14 deduped
│ │ │   ├─┬ har-validator@1.8.0
│ │ │   │ ├── bluebird@2.11.0
│ │ │   │ ├── chalk@1.1.3 deduped
│ │ │   │ ├── commander@2.9.0 deduped
│ │ │   │ └─┬ 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
│ │ │   │   └── xtend@4.0.1
│ │ │   ├─┬ hawk@2.3.1
│ │ │   │ ├─┬ 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@0.10.1
│ │ │   │ ├── asn1@0.1.11
│ │ │   │ ├── assert-plus@0.1.5
│ │ │   │ └── ctype@0.5.3
│ │ │   ├── isstream@0.1.2 deduped
│ │ │   ├── json-stringify-safe@5.0.1 deduped
│ │ │   ├─┬ mime-types@2.0.14
│ │ │   │ └── mime-db@1.12.0
│ │ │   ├── node-uuid@1.4.7
│ │ │   ├── oauth-sign@0.6.0
│ │ │   ├── qs@2.4.2
│ │ │   ├── stringstream@0.0.5
│ │ │   ├─┬ tough-cookie@2.3.2
│ │ │   │ └── punycode@1.4.1 deduped
│ │ │   └── tunnel-agent@0.4.3
│ │ └─┬ tmp@0.0.28
│ │   └── os-tmpdir@1.0.2
│ ├── debug@2.6.0 deduped
│ ├─┬ electron-download@3.3.0
│ │ ├── debug@2.6.0 deduped
│ │ ├─┬ fs-extra@0.30.0
│ │ │ ├── graceful-fs@4.1.11 deduped
│ │ │ ├── jsonfile@2.4.0 deduped
│ │ │ ├── klaw@1.3.1 deduped
│ │ │ ├── path-is-absolute@1.0.1 deduped
│ │ │ └── rimraf@2.5.4 deduped
│ │ ├── home-path@1.0.6 deduped
│ │ ├── minimist@1.2.0 deduped
│ │ ├── nugget@2.0.1 deduped
│ │ ├── path-exists@2.1.0 deduped
│ │ ├── rc@1.2.8 deduped
│ │ ├── semver@5.3.0 deduped
│ │ └── sumchecker@1.3.1 deduped
│ ├─┬ electron-osx-sign@0.4.2
│ │ ├── bluebird@3.4.7
│ │ ├── compare-version@0.1.2
│ │ ├── debug@2.6.0 deduped
│ │ ├── isbinaryfile@3.0.2
│ │ ├── minimist@1.2.0 deduped
│ │ ├── plist@2.0.1 deduped
│ │ └─┬ tempfile@1.1.1
│ │   ├── os-tmpdir@1.0.2 deduped
│ │   └── uuid@2.0.3
│ ├── extract-zip@1.6.0 deduped
│ ├─┬ fs-extra@1.0.0
│ │ ├── graceful-fs@4.1.11 deduped
│ │ ├── jsonfile@2.4.0 deduped
│ │ └─┬ klaw@1.3.1
│ │   └── graceful-fs@4.1.11 deduped
│ ├─┬ get-package-info@1.0.0
│ │ ├── bluebird@3.4.7
│ │ ├── debug@2.6.0 deduped
│ │ ├── lodash.get@4.4.2
│ │ └─┬ 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
│ │     │ ├── graceful-fs@4.1.11 deduped
│ │     │ ├─┬ parse-json@2.2.0
│ │     │ │ └─┬ error-ex@1.3.0
│ │     │ │   └── is-arrayish@0.2.1 deduped
│ │     │ ├── pify@2.3.0
│ │     │ └── strip-bom@3.0.0
│ │     ├── normalize-package-data@2.3.5 deduped
│ │     └─┬ path-type@2.0.0
│ │       └── pify@2.3.0 deduped
│ ├── minimist@1.2.0 deduped
│ ├─┬ plist@2.0.1
│ │ ├── base64-js@1.1.2
│ │ ├── xmlbuilder@8.2.2
│ │ └── xmldom@0.1.27
│ ├── rcedit@0.7.0
│ ├── resolve@1.2.0
│ ├── run-series@1.1.4
│ ├─┬ sanitize-filename@1.6.1
│ │ └─┬ truncate-utf8-bytes@1.0.2
│ │   └── utf8-byte-length@1.0.4
│ └── semver@5.3.0 deduped
└─┬ standard@11.0.1
  ├─┬ eslint@4.18.2
  │ ├─┬ ajv@5.5.2
  │ │ ├── co@4.6.0
  │ │ ├── fast-deep-equal@1.1.0
  │ │ ├── fast-json-stable-stringify@2.0.0
  │ │ └── json-schema-traverse@0.3.1
  │ ├─┬ babel-code-frame@6.26.0
  │ │ ├─┬ chalk@1.1.3
  │ │ │ ├── ansi-styles@2.2.1
  │ │ │ ├── escape-string-regexp@1.0.5 deduped
  │ │ │ ├─┬ has-ansi@2.0.0
  │ │ │ │ └── ansi-regex@2.0.0 deduped
  │ │ │ ├── strip-ansi@3.0.1 deduped
  │ │ │ └── supports-color@2.0.0
  │ │ ├── esutils@2.0.2 deduped
  │ │ └── js-tokens@3.0.2
  │ ├─┬ chalk@2.4.1
  │ │ ├─┬ ansi-styles@3.2.1
  │ │ │ └─┬ color-convert@1.9.2
  │ │ │   └── color-name@1.1.1
  │ │ ├── escape-string-regexp@1.0.5
  │ │ └─┬ supports-color@5.5.0
  │ │   └── has-flag@3.0.0
  │ ├─┬ concat-stream@1.6.2
  │ │ ├── buffer-from@1.1.1
  │ │ ├── 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
  │ │ │ ├── safe-buffer@5.1.2 deduped
  │ │ │ ├─┬ string_decoder@1.1.1
  │ │ │ │ └── safe-buffer@5.1.2 deduped
  │ │ │ └── util-deprecate@1.0.2 deduped
  │ │ └── typedarray@0.0.6 deduped
  │ ├─┬ cross-spawn@5.1.0
  │ │ ├─┬ lru-cache@4.1.3
  │ │ │ ├── pseudomap@1.0.2
  │ │ │ └── yallist@2.1.2
  │ │ ├─┬ shebang-command@1.2.0
  │ │ │ └── shebang-regex@1.0.0
  │ │ └─┬ which@1.3.1
  │ │   └── isexe@2.0.0
  │ ├─┬ debug@3.1.0
  │ │ └── ms@2.0.0
  │ ├─┬ doctrine@2.1.0
  │ │ └── esutils@2.0.2 deduped
  │ ├─┬ eslint-scope@3.7.3
  │ │ ├─┬ esrecurse@4.2.1
  │ │ │ └── estraverse@4.2.0 deduped
  │ │ └── estraverse@4.2.0
  │ ├── eslint-visitor-keys@1.0.0
  │ ├─┬ espree@3.5.4
  │ │ ├── acorn@5.7.2
  │ │ └─┬ acorn-jsx@3.0.1
  │ │   └── acorn@3.3.0
  │ ├─┬ esquery@1.0.1
  │ │ └── estraverse@4.2.0 deduped
  │ ├── esutils@2.0.2
  │ ├─┬ file-entry-cache@2.0.0
  │ │ ├─┬ flat-cache@1.3.0
  │ │ │ ├── circular-json@0.3.3
  │ │ │ ├─┬ del@2.2.2
  │ │ │ │ ├─┬ globby@5.0.0
  │ │ │ │ │ ├─┬ array-union@1.0.2
  │ │ │ │ │ │ └── array-uniq@1.0.3
  │ │ │ │ │ ├── arrify@1.0.1
  │ │ │ │ │ ├── glob@7.1.1 deduped
  │ │ │ │ │ ├── object-assign@4.1.0 deduped
  │ │ │ │ │ ├── pify@2.3.0 deduped
  │ │ │ │ │ └── pinkie-promise@2.0.1 deduped
  │ │ │ │ ├── is-path-cwd@1.0.0
  │ │ │ │ ├─┬ is-path-in-cwd@1.0.1
  │ │ │ │ │ └─┬ is-path-inside@1.0.1
  │ │ │ │ │   └── path-is-inside@1.0.2 deduped
  │ │ │ │ ├── object-assign@4.1.0 deduped
  │ │ │ │ ├── pify@2.3.0 deduped
  │ │ │ │ ├── pinkie-promise@2.0.1 deduped
  │ │ │ │ └── rimraf@2.5.4 deduped
  │ │ │ ├── graceful-fs@4.1.11 deduped
  │ │ │ └─┬ write@0.2.1
  │ │ │   └─┬ mkdirp@0.5.1
  │ │ │     └── minimist@0.0.8
  │ │ └── object-assign@4.1.0
  │ ├── functional-red-black-tree@1.0.1
  │ ├─┬ glob@7.1.2
  │ │ ├── fs.realpath@1.0.0
  │ │ ├── inflight@1.0.6 deduped
  │ │ ├── inherits@2.0.3 deduped
  │ │ ├─┬ minimatch@3.0.4
  │ │ │ └─┬ brace-expansion@1.1.11
  │ │ │   ├── balanced-match@1.0.0
  │ │ │   └── concat-map@0.0.1 deduped
  │ │ ├── once@1.4.0 deduped
  │ │ └── path-is-absolute@1.0.1 deduped
  │ ├── globals@11.7.0
  │ ├── ignore@3.3.10
  │ ├── imurmurhash@0.1.4
  │ ├─┬ inquirer@3.3.0
  │ │ ├── ansi-escapes@3.1.0
  │ │ ├─┬ chalk@2.4.1
  │ │ │ ├─┬ ansi-styles@3.2.1
  │ │ │ │ └── color-convert@1.9.2 deduped
  │ │ │ ├── escape-string-regexp@1.0.5 deduped
  │ │ │ └─┬ supports-color@5.5.0
  │ │ │   └── has-flag@3.0.0 deduped
  │ │ ├─┬ cli-cursor@2.1.0
  │ │ │ └─┬ restore-cursor@2.0.0
  │ │ │   ├─┬ onetime@2.0.1
  │ │ │   │ └── mimic-fn@1.2.0
  │ │ │   └── signal-exit@3.0.2 deduped
  │ │ ├── cli-width@2.2.0
  │ │ ├─┬ external-editor@2.2.0
  │ │ │ ├── chardet@0.4.2
  │ │ │ ├─┬ iconv-lite@0.4.24
  │ │ │ │ └── safer-buffer@2.1.2 deduped
  │ │ │ └─┬ tmp@0.0.33
  │ │ │   └── os-tmpdir@1.0.2 deduped
  │ │ ├─┬ figures@2.0.0
  │ │ │ └── escape-string-regexp@1.0.5 deduped
  │ │ ├── lodash@4.17.10 deduped
  │ │ ├── mute-stream@0.0.7
  │ │ ├─┬ run-async@2.3.0
  │ │ │ └── is-promise@2.1.0
  │ │ ├── rx-lite@4.0.8
  │ │ ├─┬ rx-lite-aggregates@4.0.8
  │ │ │ └── rx-lite@4.0.8 deduped
  │ │ ├─┬ string-width@2.1.1
  │ │ │ ├── is-fullwidth-code-point@2.0.0
  │ │ │ └── strip-ansi@4.0.0 deduped
  │ │ ├─┬ strip-ansi@4.0.0
  │ │ │ └── ansi-regex@3.0.0
  │ │ └── through@2.3.8
  │ ├── is-resolvable@1.1.0
  │ ├─┬ js-yaml@3.12.0
  │ │ ├─┬ argparse@1.0.10
  │ │ │ └── sprintf-js@1.0.3
  │ │ └── esprima@4.0.1
  │ ├── json-stable-stringify-without-jsonify@1.0.1
  │ ├─┬ levn@0.3.0
  │ │ ├── prelude-ls@1.1.2
  │ │ └─┬ type-check@0.3.2
  │ │   └── prelude-ls@1.1.2 deduped
  │ ├── lodash@4.17.10
  │ ├── minimatch@3.0.3 deduped
  │ ├─┬ mkdirp@0.5.1
  │ │ └── minimist@0.0.8
  │ ├── natural-compare@1.4.0
  │ ├─┬ optionator@0.8.2
  │ │ ├── deep-is@0.1.3
  │ │ ├── fast-levenshtein@2.0.6
  │ │ ├── levn@0.3.0 deduped
  │ │ ├── prelude-ls@1.1.2 deduped
  │ │ ├── type-check@0.3.2 deduped
  │ │ └── wordwrap@1.0.0
  │ ├── path-is-inside@1.0.2
  │ ├── pluralize@7.0.0
  │ ├── progress@2.0.0
  │ ├─┬ require-uncached@1.0.3
  │ │ ├─┬ caller-path@0.1.0
  │ │ │ └── callsites@0.2.0
  │ │ └── resolve-from@1.0.1
  │ ├── semver@5.3.0 deduped
  │ ├─┬ strip-ansi@4.0.0
  │ │ └── ansi-regex@3.0.0
  │ ├── strip-json-comments@2.0.1
  │ ├─┬ table@4.0.2
  │ │ ├── ajv@5.5.2 deduped
  │ │ ├── ajv-keywords@2.1.1
  │ │ ├─┬ chalk@2.4.1
  │ │ │ ├─┬ ansi-styles@3.2.1
  │ │ │ │ └── color-convert@1.9.2 deduped
  │ │ │ ├── escape-string-regexp@1.0.5 deduped
  │ │ │ └─┬ supports-color@5.5.0
  │ │ │   └── has-flag@3.0.0 deduped
  │ │ ├── lodash@4.17.10 deduped
  │ │ ├─┬ slice-ansi@1.0.0
  │ │ │ └── is-fullwidth-code-point@2.0.0
  │ │ └─┬ string-width@2.1.1
  │ │   ├── is-fullwidth-code-point@2.0.0
  │ │   └─┬ strip-ansi@4.0.0
  │ │     └── ansi-regex@3.0.0
  │ └── text-table@0.2.0
  ├── eslint-config-standard@11.0.0
  ├── eslint-config-standard-jsx@5.0.0
  ├─┬ eslint-plugin-import@2.9.0
  │ ├── builtin-modules@1.1.1
  │ ├── contains-path@0.1.0
  │ ├─┬ debug@2.6.9
  │ │ └── ms@2.0.0
  │ ├─┬ doctrine@1.5.0
  │ │ ├── esutils@2.0.2 deduped
  │ │ └── isarray@1.0.0
  │ ├─┬ eslint-import-resolver-node@0.3.2
  │ │ ├─┬ debug@2.6.9
  │ │ │ └── ms@2.0.0
  │ │ └─┬ resolve@1.8.1
  │ │   └── path-parse@1.0.6 deduped
  │ ├─┬ eslint-module-utils@2.2.0
  │ │ ├─┬ debug@2.6.9
  │ │ │ └── ms@2.0.0
  │ │ └─┬ pkg-dir@1.0.0
  │ │   └─┬ find-up@1.1.2
  │ │     ├── path-exists@2.1.0 deduped
  │ │     └── pinkie-promise@2.0.1 deduped
  │ ├─┬ has@1.0.3
  │ │ └── function-bind@1.1.1
  │ ├── lodash@4.17.10 deduped
  │ ├── minimatch@3.0.3 deduped
  │ └─┬ read-pkg-up@2.0.0
  │   ├─┬ find-up@2.1.0
  │   │ └── locate-path@2.0.0 deduped
  │   └─┬ read-pkg@2.0.0
  │     ├─┬ load-json-file@2.0.0
  │     │ ├── graceful-fs@4.1.11 deduped
  │     │ ├── parse-json@2.2.0 deduped
  │     │ ├── pify@2.3.0 deduped
  │     │ └── strip-bom@3.0.0
  │     ├── normalize-package-data@2.3.5 deduped
  │     └─┬ path-type@2.0.0
  │       └── pify@2.3.0 deduped
  ├─┬ eslint-plugin-node@6.0.1
  │ ├── ignore@3.3.10 deduped
  │ ├─┬ minimatch@3.0.4
  │ │ └─┬ brace-expansion@1.1.11
  │ │   ├── balanced-match@1.0.0
  │ │   └── concat-map@0.0.1 deduped
  │ ├─┬ resolve@1.8.1
  │ │ └── path-parse@1.0.6
  │ └── semver@5.5.1
  ├── eslint-plugin-promise@3.7.0
  ├─┬ eslint-plugin-react@7.7.0
  │ ├── doctrine@2.1.0 deduped
  │ ├── has@1.0.3 deduped
  │ ├─┬ jsx-ast-utils@2.0.1
  │ │ └─┬ array-includes@3.0.3
  │ │   ├─┬ define-properties@1.1.3
  │ │   │ └── object-keys@1.0.12
  │ │   └─┬ es-abstract@1.12.0
  │ │     ├─┬ es-to-primitive@1.1.1
  │ │     │ ├── is-callable@1.1.4 deduped
  │ │     │ ├── is-date-object@1.0.1
  │ │     │ └── is-symbol@1.0.1
  │ │     ├── function-bind@1.1.1 deduped
  │ │     ├── has@1.0.3 deduped
  │ │     ├── is-callable@1.1.4
  │ │     └─┬ is-regex@1.0.4
  │ │       └── has@1.0.3 deduped
  │ └─┬ prop-types@15.6.2
  │   ├─┬ loose-envify@1.4.0
  │   │ └── js-tokens@3.0.2 deduped
  │   └── object-assign@4.1.1
  ├── eslint-plugin-standard@3.0.1
  └─┬ standard-engine@8.0.1
    ├─┬ deglob@2.1.1
    │ ├── find-root@1.1.0
    │ ├─┬ glob@7.1.1
    │ │ ├── fs.realpath@1.0.0 deduped
    │ │ ├── inflight@1.0.6 deduped
    │ │ ├── inherits@2.0.3 deduped
    │ │ ├── minimatch@3.0.3 deduped
    │ │ ├── once@1.4.0 deduped
    │ │ └── path-is-absolute@1.0.1 deduped
    │ ├── ignore@3.3.10 deduped
    │ ├─┬ pkg-config@1.1.1
    │ │ ├── debug-log@1.0.1
    │ │ ├── find-root@1.1.0 deduped
    │ │ └── xtend@4.0.1
    │ ├── run-parallel@1.1.9
    │ └── uniq@1.0.1
    ├── get-stdin@6.0.0
    ├── minimist@1.2.0 deduped
    └─┬ pkg-conf@2.1.0
      ├─┬ find-up@2.1.0
      │ └── locate-path@2.0.0 deduped
      └─┬ load-json-file@4.0.0
        ├── graceful-fs@4.1.11 deduped
        ├─┬ parse-json@4.0.0
        │ ├─┬ error-ex@1.3.2
        │ │ └── is-arrayish@0.2.1
        │ └── json-parse-better-errors@1.0.2
        ├── pify@3.0.0
        └── strip-bom@3.0.0
adrienjoly commented 6 years ago
$ cost-of-modules

Making sure dependencies are installed
npm install --production

> openwhyd-electron@1.0.0-rc.1 postinstall /Users/adrienjoly/Dev/openwhyd/openwhyd-electron
> # brew install wine # in order to build for win32 from macos/darwin

npm WARN openwhyd-electron@1.0.0-rc.1 No repository field.
npm WARN openwhyd-electron@1.0.0-rc.1 No license field.

up to date in 2.195s

Calculating...

┌───────────────────┬──────────────┬─────────┐
│ name              │ children     │ size    │
├───────────────────┼──────────────┼─────────┤
│ electron          │ 43           │ 108.75M │
├───────────────────┼──────────────┼─────────┤
│ electron-packager │ 162          │ 11.20M  │
├───────────────────┼──────────────┼─────────┤
│ electron-download │ 146          │ 6.60M   │
├───────────────────┼──────────────┼─────────┤
│ electron-debug    │ 7            │ 0.16M   │
├───────────────────┼──────────────┼─────────┤
│ 4 modules         │ 204 children │ 120.40M │
└───────────────────┴──────────────┴─────────┘
adrienjoly commented 6 years ago

Ideas:

adrienjoly commented 4 years ago

Idea: try Tauri as an alternative to Electron: https://www.smashingmagazine.com/2020/07/tiny-desktop-apps-tauri-vuejs/