Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve npm install time / space #14

Closed
vjeux opened this issue Jul 18, 2016 · 21 comments
Closed

Improve npm install time / space #14

vjeux opened this issue Jul 18, 2016 · 21 comments

Comments

@vjeux
Copy link
Contributor

vjeux commented Jul 18, 2016

Right now it takes 2m10s to create a new project (almost everything is npm install) and generates a 81meg node_modules/ folder. We need to figure out a way to cut this down, this is depressing :(

  "dependencies": {
    "autoprefixer": "^6.3.7",
    "babel-core": "^6.10.4",
    "babel-loader": "^6.2.4",
    "babel-plugin-transform-object-rest-spread": "^6.8.0",
    "babel-plugin-transform-react-constant-elements": "^6.9.1",
    "babel-preset-es2015": "^6.9.0",
    "babel-preset-es2016": "^6.11.3",
    "babel-preset-react": "^6.11.1",
    "css-loader": "^0.23.1",
    "cross-spawn": "^4.0.0",
    "eslint": "^2.13.1",
    "eslint-config-airbnb": "^9.0.1",
    "eslint-loader": "^1.4.1",
    "eslint-plugin-import": "^1.10.3",
    "eslint-plugin-jsx-a11y": "^1.5.5",
    "eslint-plugin-react": "^5.2.2",
    "file-loader": "^0.9.0",
    "html-webpack-plugin": "^2.22.0",
    "json-loader": "^0.5.4",
    "opn": "^4.0.2",
    "postcss-loader": "^0.9.1",
    "rimraf": "^2.5.3",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.7",
    "webpack": "^1.13.1",
    "webpack-dev-server": "^1.14.1"
  },
  "devDependencies": {
    "react": "^15.2.1",
    "react-dom": "^15.2.1"
  }
└─┬ create-react-app-scripts@0.0.1 
  ├─┬ autoprefixer@6.3.7 
  │ ├── browserslist@1.3.5 
  │ ├── caniuse-db@1.0.30000506 
  │ ├── normalize-range@0.1.2 
  │ ├── num2fraction@1.2.2 
  │ ├─┬ postcss@5.1.0 
  │ │ └── js-base64@2.1.9 
  │ └── postcss-value-parser@3.3.0 
  ├─┬ babel-core@6.10.4 
  │ ├─┬ babel-code-frame@6.11.0 
  │ │ └── js-tokens@2.0.0 
  │ ├─┬ babel-generator@6.11.3 
  │ │ └─┬ detect-indent@3.0.1 
  │ │   ├── get-stdin@4.0.1 
  │ │   ├── minimist@1.2.0 
  │ │   └─┬ repeating@1.1.3 
  │ │     └── is-finite@1.0.1 
  │ ├── babel-helpers@6.8.0 
  │ ├── babel-messages@6.8.0 
  │ ├─┬ babel-register@6.9.0 
  │ │ ├── core-js@2.4.1 
  │ │ ├─┬ home-or-tmp@1.0.0 
  │ │ │ ├── os-tmpdir@1.0.1 
  │ │ │ └── user-home@1.1.1 
  │ │ └─┬ source-map-support@0.2.10 
  │ │   └── source-map@0.1.32 
  │ ├─┬ babel-runtime@6.9.2 
  │ │ └── regenerator-runtime@0.9.5 
  │ ├── babel-template@6.9.0 
  │ ├─┬ babel-traverse@6.10.4 
  │ │ ├── globals@8.18.0 
  │ │ └─┬ invariant@2.2.1 
  │ │   └─┬ loose-envify@1.2.0 
  │ │     └── js-tokens@1.0.3 
  │ ├─┬ babel-types@6.11.1 
  │ │ └── to-fast-properties@1.0.2 
  │ ├── babylon@6.8.4 
  │ ├── convert-source-map@1.2.0 
  │ ├─┬ debug@2.2.0 
  │ │ └── ms@0.7.1 
  │ ├── json5@0.4.0 
  │ ├── lodash@4.13.1 
  │ ├─┬ minimatch@3.0.2 
  │ │ └─┬ brace-expansion@1.1.5 
  │ │   ├── balanced-match@0.4.1 
  │ │   └── concat-map@0.0.1 
  │ ├── path-exists@1.0.0 
  │ ├── path-is-absolute@1.0.0 
  │ ├── private@0.1.6 
  │ ├── shebang-regex@1.0.0 
  │ ├── slash@1.0.0 
  │ └── source-map@0.5.6 
  ├─┬ babel-loader@6.2.4 
  │ ├─┬ loader-utils@0.2.15 
  │ │ ├── big.js@3.1.3 
  │ │ ├── emojis-list@2.0.1 
  │ │ └── json5@0.5.0 
  │ ├─┬ mkdirp@0.5.1 
  │ │ └── minimist@0.0.8 
  │ └── object-assign@4.1.0 
  ├─┬ babel-plugin-transform-object-rest-spread@6.8.0 
  │ └── babel-plugin-syntax-object-rest-spread@6.8.0 
  ├── babel-plugin-transform-react-constant-elements@6.9.1 
  ├─┬ babel-preset-es2015@6.9.0 
  │ ├── babel-plugin-check-es2015-constants@6.8.0 
  │ ├── babel-plugin-transform-es2015-arrow-functions@6.8.0 
  │ ├── babel-plugin-transform-es2015-block-scoped-functions@6.8.0 
  │ ├── babel-plugin-transform-es2015-block-scoping@6.10.1 
  │ ├─┬ babel-plugin-transform-es2015-classes@6.9.0 
  │ │ ├── babel-helper-define-map@6.9.0 
  │ │ ├── babel-helper-function-name@6.8.0 
  │ │ ├── babel-helper-optimise-call-expression@6.8.0 
  │ │ └── babel-helper-replace-supers@6.8.0 
  │ ├── babel-plugin-transform-es2015-computed-properties@6.8.0 
  │ ├── babel-plugin-transform-es2015-destructuring@6.9.0 
  │ ├── babel-plugin-transform-es2015-duplicate-keys@6.8.0 
  │ ├── babel-plugin-transform-es2015-for-of@6.8.0 
  │ ├── babel-plugin-transform-es2015-function-name@6.9.0 
  │ ├── babel-plugin-transform-es2015-literals@6.8.0 
  │ ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.10.3 
  │ │ └── babel-plugin-transform-strict-mode@6.11.3 
  │ ├── babel-plugin-transform-es2015-object-super@6.8.0 
  │ ├─┬ babel-plugin-transform-es2015-parameters@6.11.3 
  │ │ ├─┬ babel-helper-call-delegate@6.8.0 
  │ │ │ └── babel-helper-hoist-variables@6.8.0 
  │ │ └── babel-helper-get-function-arity@6.8.0 
  │ ├── babel-plugin-transform-es2015-shorthand-properties@6.8.0 
  │ ├── babel-plugin-transform-es2015-spread@6.8.0 
  │ ├─┬ babel-plugin-transform-es2015-sticky-regex@6.8.0 
  │ │ └── babel-helper-regex@6.9.0 
  │ ├── babel-plugin-transform-es2015-template-literals@6.8.0 
  │ ├── babel-plugin-transform-es2015-typeof-symbol@6.8.0 
  │ ├─┬ babel-plugin-transform-es2015-unicode-regex@6.11.0 
  │ │ └─┬ regexpu-core@2.0.0 
  │ │   ├── regenerate@1.3.1 
  │ │   ├── regjsgen@0.2.0 
  │ │   └─┬ regjsparser@0.1.5 
  │ │     └── jsesc@0.5.0 
  │ └─┬ babel-plugin-transform-regenerator@6.9.0 
  │   └── babel-plugin-syntax-async-functions@6.8.0 
  ├─┬ babel-preset-es2016@6.11.3 
  │ └─┬ babel-plugin-transform-exponentiation-operator@6.8.0 
  │   ├─┬ babel-helper-builder-binary-assignment-operator-visitor@6.8.0 
  │   │ └── babel-helper-explode-assignable-expression@6.8.0 
  │   └── babel-plugin-syntax-exponentiation-operator@6.8.0 
  ├─┬ babel-preset-react@6.11.1 
  │ ├── babel-plugin-syntax-flow@6.8.0 
  │ ├── babel-plugin-syntax-jsx@6.8.0 
  │ ├── babel-plugin-transform-flow-strip-types@6.8.0 
  │ ├── babel-plugin-transform-react-display-name@6.8.0 
  │ ├─┬ babel-plugin-transform-react-jsx@6.8.0 
  │ │ └── babel-helper-builder-react-jsx@6.9.0 
  │ ├── babel-plugin-transform-react-jsx-self@6.11.0 
  │ └── babel-plugin-transform-react-jsx-source@6.9.0 
  ├─┬ cross-spawn@4.0.0 
  │ ├─┬ lru-cache@4.0.1 
  │ │ ├── pseudomap@1.0.2 
  │ │ └── yallist@2.0.0 
  │ └─┬ which@1.2.10 
  │   └── isexe@1.1.2 
  ├─┬ css-loader@0.23.1 
  │ ├─┬ css-selector-tokenizer@0.5.4 
  │ │ ├── cssesc@0.1.0 
  │ │ └── fastparse@1.1.1 
  │ ├─┬ cssnano@3.7.3 
  │ │ ├── decamelize@1.2.0 
  │ │ ├── defined@1.0.0 
  │ │ ├── indexes-of@1.0.1 
  │ │ ├─┬ postcss-calc@5.3.0 
  │ │ │ ├── postcss-message-helpers@2.0.0 
  │ │ │ └─┬ reduce-css-calc@1.2.4 
  │ │ │   ├── balanced-match@0.1.0 
  │ │ │   └─┬ reduce-function-call@1.0.1 
  │ │ │     └── balanced-match@0.1.0 
  │ │ ├─┬ postcss-colormin@2.2.0 
  │ │ │ └─┬ colormin@1.1.1 
  │ │ │   ├─┬ color@0.11.3 
  │ │ │   │ ├── color-convert@1.3.1 
  │ │ │   │ └─┬ color-string@0.3.0 
  │ │ │   │   └── color-name@1.1.1 
  │ │ │   └── css-color-names@0.0.4 
  │ │ ├── postcss-convert-values@2.4.0 
  │ │ ├── postcss-discard-comments@2.0.4 
  │ │ ├── postcss-discard-duplicates@2.0.1 
  │ │ ├── postcss-discard-empty@2.1.0 
  │ │ ├── postcss-discard-overridden@0.1.1 
  │ │ ├─┬ postcss-discard-unused@2.2.1 
  │ │ │ ├── flatten@1.0.2 
  │ │ │ └── uniqs@2.0.0 
  │ │ ├─┬ postcss-filter-plugins@2.0.1 
  │ │ │ └─┬ uniqid@3.1.0 
  │ │ │   └── macaddress@0.2.8 
  │ │ ├─┬ postcss-merge-idents@2.1.6 
  │ │ │ └── has-own@1.0.0 
  │ │ ├── postcss-merge-longhand@2.0.1 
  │ │ ├── postcss-merge-rules@2.0.9 
  │ │ ├── postcss-minify-font-values@1.0.5 
  │ │ ├── postcss-minify-gradients@1.0.3 
  │ │ ├─┬ postcss-minify-params@1.0.4 
  │ │ │ └── alphanum-sort@1.0.2 
  │ │ ├─┬ postcss-minify-selectors@2.0.5 
  │ │ │ └─┬ postcss-selector-parser@2.1.1 
  │ │ │   └── uniq@1.0.1 
  │ │ ├── postcss-normalize-charset@1.1.0 
  │ │ ├─┬ postcss-normalize-url@3.0.7 
  │ │ │ ├── is-absolute-url@2.0.0 
  │ │ │ └─┬ normalize-url@1.6.0 
  │ │ │   ├── prepend-http@1.0.4 
  │ │ │   ├─┬ query-string@4.2.2 
  │ │ │   │ └── strict-uri-encode@1.1.0 
  │ │ │   └─┬ sort-keys@1.1.2 
  │ │ │     └── is-plain-obj@1.1.0 
  │ │ ├── postcss-ordered-values@2.2.1 
  │ │ ├── postcss-reduce-idents@2.3.0 
  │ │ ├── postcss-reduce-initial@1.0.0 
  │ │ ├── postcss-reduce-transforms@1.0.3 
  │ │ ├─┬ postcss-svgo@2.1.4 
  │ │ │ ├─┬ is-svg@2.0.1 
  │ │ │ │ └── html-comment-regex@1.1.1 
  │ │ │ └─┬ svgo@0.6.6 
  │ │ │   ├─┬ coa@1.0.1 
  │ │ │   │ └── q@1.4.1 
  │ │ │   ├── colors@1.1.2 
  │ │ │   ├─┬ csso@2.0.0 
  │ │ │   │ └── clap@1.1.1 
  │ │ │   ├── sax@1.2.1 
  │ │ │   └── whet.extend@0.9.9 
  │ │ ├── postcss-unique-selectors@2.0.2 
  │ │ └── postcss-zindex@2.1.1 
  │ ├─┬ lodash.camelcase@3.0.1 
  │ │ └─┬ lodash._createcompounder@3.0.0 
  │ │   ├─┬ lodash.deburr@3.2.0 
  │ │   │ └── lodash._root@3.0.1 
  │ │   └── lodash.words@3.2.0 
  │ ├── postcss-modules-extract-imports@1.0.1 
  │ ├── postcss-modules-local-by-default@1.1.0 
  │ ├── postcss-modules-scope@1.0.1 
  │ ├─┬ postcss-modules-values@1.1.3 
  │ │ └── icss-replace-symbols@1.0.2 
  │ └── source-list-map@0.1.6 
  ├─┬ eslint@2.13.1 
  │ ├─┬ 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 
  │ ├─┬ concat-stream@1.5.1 
  │ │ ├── inherits@2.0.1 
  │ │ ├─┬ readable-stream@2.0.6 
  │ │ │ ├── core-util-is@1.0.2 
  │ │ │ ├── process-nextick-args@1.0.7 
  │ │ │ └── util-deprecate@1.0.2 
  │ │ └── typedarray@0.0.6 
  │ ├─┬ doctrine@1.2.2 
  │ │ ├── esutils@1.1.6 
  │ │ └── isarray@1.0.0 
  │ ├─┬ es6-map@0.1.4 
  │ │ ├── d@0.1.1 
  │ │ ├── es5-ext@0.10.12 
  │ │ ├── es6-iterator@2.0.0 
  │ │ ├── es6-symbol@3.1.0 
  │ │ └── event-emitter@0.3.4 
  │ ├─┬ escope@3.6.0 
  │ │ ├── es6-weak-map@2.0.1 
  │ │ └─┬ esrecurse@4.1.0 
  │ │   └── estraverse@4.1.1 
  │ ├─┬ espree@3.1.6 
  │ │ └── acorn-jsx@3.0.1 
  │ ├── estraverse@4.2.0 
  │ ├── esutils@2.0.2 
  │ ├─┬ file-entry-cache@1.2.4 
  │ │ └─┬ flat-cache@1.0.10 
  │ │   ├─┬ del@2.2.1 
  │ │   │ ├─┬ globby@5.0.0 
  │ │   │ │ └─┬ array-union@1.0.2 
  │ │   │ │   └── array-uniq@1.0.3 
  │ │   │ ├── is-path-cwd@1.0.0 
  │ │   │ ├─┬ is-path-in-cwd@1.0.0 
  │ │   │ │ └── is-path-inside@1.0.0 
  │ │   │ └── pify@2.3.0 
  │ │   ├── read-json-sync@1.1.1 
  │ │   └── write@0.2.1 
  │ ├─┬ glob@7.0.5 
  │ │ ├── fs.realpath@1.0.0 
  │ │ ├─┬ inflight@1.0.5 
  │ │ │ └── wrappy@1.0.2 
  │ │ └── once@1.3.3 
  │ ├── globals@9.9.0 
  │ ├── ignore@3.1.3 
  │ ├── imurmurhash@0.1.4 
  │ ├─┬ inquirer@0.12.0 
  │ │ ├── ansi-escapes@1.4.0 
  │ │ ├── ansi-regex@2.0.0 
  │ │ ├─┬ cli-cursor@1.0.2 
  │ │ │ └─┬ restore-cursor@1.0.1 
  │ │ │   ├── exit-hook@1.1.1 
  │ │ │   └── onetime@1.1.0 
  │ │ ├── cli-width@2.1.0 
  │ │ ├── figures@1.7.0 
  │ │ ├─┬ readline2@1.0.1 
  │ │ │ ├─┬ code-point-at@1.0.0 
  │ │ │ │ └── number-is-nan@1.0.0 
  │ │ │ ├── is-fullwidth-code-point@1.0.0 
  │ │ │ └── mute-stream@0.0.5 
  │ │ ├── run-async@0.1.0 
  │ │ ├── rx-lite@3.1.2 
  │ │ ├── string-width@1.0.1 
  │ │ └── through@2.3.8 
  │ ├─┬ is-my-json-valid@2.13.1 
  │ │ ├── generate-function@2.0.0 
  │ │ ├─┬ generate-object-property@1.2.0 
  │ │ │ └── is-property@1.0.2 
  │ │ ├── jsonpointer@2.0.0 
  │ │ └── xtend@4.0.1 
  │ ├─┬ is-resolvable@1.0.0 
  │ │ └── tryit@1.0.2 
  │ ├─┬ js-yaml@3.6.1 
  │ │ ├─┬ argparse@1.0.7 
  │ │ │ └── sprintf-js@1.0.3 
  │ │ └── esprima@2.7.2 
  │ ├─┬ json-stable-stringify@1.0.1 
  │ │ └── jsonify@0.0.0 
  │ ├─┬ levn@0.3.0 
  │ │ ├── prelude-ls@1.1.2 
  │ │ └── type-check@0.3.2 
  │ ├─┬ optionator@0.8.1 
  │ │ ├── deep-is@0.1.3 
  │ │ ├── fast-levenshtein@1.1.3 
  │ │ └── wordwrap@1.0.0 
  │ ├── path-is-inside@1.0.1 
  │ ├── pluralize@1.2.1 
  │ ├── progress@1.1.8 
  │ ├─┬ require-uncached@1.0.2 
  │ │ ├─┬ caller-path@0.1.0 
  │ │ │ └── callsites@0.2.0 
  │ │ └── resolve-from@1.0.1 
  │ ├── shelljs@0.6.0 
  │ ├── strip-json-comments@1.0.4 
  │ ├─┬ table@3.7.8 
  │ │ ├── slice-ansi@0.0.4 
  │ │ ├── tv4@1.2.7 
  │ │ └── xregexp@3.1.1 
  │ ├── text-table@0.2.0 
  │ └─┬ user-home@2.0.0 
  │   └── os-homedir@1.0.1 
  ├─┬ eslint-config-airbnb@9.0.1 
  │ └── eslint-config-airbnb-base@3.0.1 
  ├── eslint-loader@1.4.1 
  ├─┬ eslint-plugin-import@1.11.0 
  │ ├── builtin-modules@1.1.1 
  │ ├── contains-path@0.1.0 
  │ ├── es6-set@0.1.4 
  │ ├─┬ eslint-import-resolver-node@0.2.2 
  │ │ └── resolve@1.1.7 
  │ ├─┬ lodash.cond@4.4.0 
  │ │ ├─┬ lodash._baseiteratee@4.7.0 
  │ │ │ └── lodash._stringtopath@4.8.0 
  │ │ └── lodash.rest@4.0.3 
  │ ├─┬ lodash.endswith@4.1.0 
  │ │ ├── lodash._basetostring@4.12.0 
  │ │ └── lodash.tostring@4.1.3 
  │ ├─┬ lodash.find@4.4.0 
  │ │ ├── lodash._baseeach@4.1.3 
  │ │ ├── lodash._basefind@3.0.0 
  │ │ └── lodash._basefindindex@3.6.0 
  │ ├── lodash.findindex@4.4.0 
  │ ├─┬ pkg-dir@1.0.0 
  │ │ └─┬ find-up@1.1.2 
  │ │   └── path-exists@2.1.0 
  │ └── pkg-up@1.0.0 
  ├─┬ eslint-plugin-jsx-a11y@1.5.5 
  │ ├── damerau-levenshtein@1.0.0 
  │ └── jsx-ast-utils@1.3.1 
  ├── eslint-plugin-react@5.2.2 
  ├── file-loader@0.9.0 
  ├─┬ html-webpack-plugin@2.22.0 
  │ ├── bluebird@3.4.1 
  │ ├─┬ html-minifier@2.1.7 
  │ │ ├─┬ change-case@3.0.0 
  │ │ │ ├── camel-case@3.0.0 
  │ │ │ ├── constant-case@2.0.0 
  │ │ │ ├── dot-case@2.1.0 
  │ │ │ ├── header-case@1.0.0 
  │ │ │ ├── is-lower-case@1.1.3 
  │ │ │ ├── is-upper-case@1.1.2 
  │ │ │ ├── lower-case@1.1.3 
  │ │ │ ├── lower-case-first@1.0.2 
  │ │ │ ├── no-case@2.3.0 
  │ │ │ ├── param-case@2.1.0 
  │ │ │ ├── pascal-case@2.0.0 
  │ │ │ ├── path-case@2.1.0 
  │ │ │ ├── sentence-case@2.1.0 
  │ │ │ ├── snake-case@2.1.0 
  │ │ │ ├── swap-case@1.1.2 
  │ │ │ ├── title-case@2.1.0 
  │ │ │ ├── upper-case@1.1.3 
  │ │ │ └── upper-case-first@1.1.2 
  │ │ ├─┬ clean-css@3.4.18 
  │ │ │ ├── commander@2.8.1 
  │ │ │ └── source-map@0.4.4 
  │ │ ├─┬ commander@2.9.0 
  │ │ │ └── graceful-readlink@1.0.1 
  │ │ ├── he@1.1.0 
  │ │ ├─┬ ncname@1.0.0 
  │ │ │ └── xml-char-classes@1.0.0 
  │ │ └── relateurl@0.2.7 
  │ ├─┬ pretty-error@2.0.0 
  │ │ ├─┬ renderkid@2.0.0 
  │ │ │ ├─┬ css-select@1.2.0 
  │ │ │ │ ├── boolbase@1.0.0 
  │ │ │ │ ├── css-what@2.1.0 
  │ │ │ │ ├─┬ domutils@1.5.1 
  │ │ │ │ │ └─┬ dom-serializer@0.1.0 
  │ │ │ │ │   ├── domelementtype@1.1.3 
  │ │ │ │ │   └── entities@1.1.1 
  │ │ │ │ └── nth-check@1.0.1 
  │ │ │ ├─┬ dom-converter@0.1.4 
  │ │ │ │ └── utila@0.3.3 
  │ │ │ ├─┬ htmlparser2@3.3.0 
  │ │ │ │ ├── domelementtype@1.3.0 
  │ │ │ │ ├── domhandler@2.1.0 
  │ │ │ │ ├── domutils@1.1.6 
  │ │ │ │ └─┬ readable-stream@1.0.34 
  │ │ │ │   └── isarray@0.0.1 
  │ │ │ └── utila@0.3.3 
  │ │ └── utila@0.4.0 
  │ └── toposort@1.0.0 
  ├── json-loader@0.5.4 
  ├─┬ opn@4.0.2 
  │ └─┬ pinkie-promise@2.0.1 
  │   └── pinkie@2.0.4 
  ├── postcss-loader@0.9.1 
  ├── rimraf@2.5.3 
  ├── style-loader@0.13.1 
  ├─┬ url-loader@0.5.7 
  │ └── mime@1.2.11 
  ├─┬ webpack@1.13.1 
  │ ├── acorn@3.2.0 
  │ ├── async@1.5.2 
  │ ├── clone@1.0.2 
  │ ├─┬ enhanced-resolve@0.9.1 
  │ │ ├── graceful-fs@4.1.4 
  │ │ └── memory-fs@0.2.0 
  │ ├── interpret@0.6.6 
  │ ├─┬ memory-fs@0.3.0 
  │ │ └─┬ errno@0.1.4 
  │ │   └── prr@0.0.0 
  │ ├─┬ node-libs-browser@0.5.3 
  │ │ ├── assert@1.4.1 
  │ │ ├─┬ browserify-zlib@0.1.4 
  │ │ │ └── pako@0.2.8 
  │ │ ├─┬ buffer@3.6.0 
  │ │ │ ├── base64-js@0.0.8 
  │ │ │ └── ieee754@1.1.6 
  │ │ ├─┬ console-browserify@1.1.0 
  │ │ │ └── date-now@0.1.4 
  │ │ ├── constants-browserify@0.0.1 
  │ │ ├─┬ crypto-browserify@3.2.8 
  │ │ │ ├── pbkdf2-compat@2.0.1 
  │ │ │ ├── ripemd160@0.2.0 
  │ │ │ └── sha.js@2.2.6 
  │ │ ├── domain-browser@1.1.7 
  │ │ ├── events@1.1.1 
  │ │ ├─┬ http-browserify@1.7.0 
  │ │ │ └── Base64@0.2.1 
  │ │ ├── https-browserify@0.0.0 
  │ │ ├── os-browserify@0.1.2 
  │ │ ├── path-browserify@0.0.0 
  │ │ ├── process@0.11.5 
  │ │ ├── punycode@1.4.1 
  │ │ ├── querystring-es3@0.2.1 
  │ │ ├─┬ readable-stream@1.1.14 
  │ │ │ └── isarray@0.0.1 
  │ │ ├─┬ stream-browserify@1.0.0 
  │ │ │ └─┬ readable-stream@1.1.14 
  │ │ │   └── isarray@0.0.1 
  │ │ ├── string_decoder@0.10.31 
  │ │ ├── timers-browserify@1.4.2 
  │ │ ├── tty-browserify@0.0.0 
  │ │ ├─┬ url@0.10.3 
  │ │ │ ├── punycode@1.3.2 
  │ │ │ └── querystring@0.2.0 
  │ │ ├── util@0.10.3 
  │ │ └─┬ vm-browserify@0.0.4 
  │ │   └── indexof@0.0.1 
  │ ├─┬ optimist@0.6.1 
  │ │ ├── minimist@0.0.10 
  │ │ └── wordwrap@0.0.3 
  │ ├─┬ supports-color@3.1.2 
  │ │ └── has-flag@1.0.0 
  │ ├── tapable@0.1.10 
  │ ├─┬ uglify-js@2.6.4 
  │ │ ├── async@0.2.10 
  │ │ ├── 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 
  │ │   │ │ │ └── repeat-string@1.5.4 
  │ │   │ │ └── lazy-cache@1.0.4 
  │ │   │ ├── right-align@0.1.3 
  │ │   │ └── wordwrap@0.0.2 
  │ │   └── window-size@0.1.0 
  │ ├─┬ watchpack@0.2.9 
  │ │ ├── async@0.9.2 
  │ │ └─┬ chokidar@1.6.0 
  │ │   ├─┬ anymatch@1.3.0 
  │ │   │ ├── arrify@1.0.1 
  │ │   │ └─┬ micromatch@2.3.11 
  │ │   │   ├─┬ arr-diff@2.0.0 
  │ │   │   │ └── arr-flatten@1.0.1 
  │ │   │   ├── 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.5 
  │ │   │   │ ├── preserve@0.2.0 
  │ │   │   │ └── repeat-element@1.1.2 
  │ │   │   ├─┬ expand-brackets@0.1.5 
  │ │   │   │ └── is-posix-bracket@0.1.1 
  │ │   │   ├── extglob@0.3.2 
  │ │   │   ├── filename-regex@2.0.0 
  │ │   │   ├─┬ kind-of@3.0.3 
  │ │   │   │ └── is-buffer@1.1.3 
  │ │   │   ├── normalize-path@2.0.1 
  │ │   │   ├─┬ object.omit@2.0.0 
  │ │   │   │ ├─┬ for-own@0.1.4 
  │ │   │   │ │ └── for-in@0.1.5 
  │ │   │   │ └── is-extendable@0.1.1 
  │ │   │   ├─┬ parse-glob@3.0.4 
  │ │   │   │ ├── glob-base@0.3.0 
  │ │   │   │ └── is-dotfile@1.0.2 
  │ │   │   └─┬ regex-cache@0.4.3 
  │ │   │     ├── is-equal-shallow@0.1.3 
  │ │   │     └── is-primitive@2.0.0 
  │ │   ├── async-each@1.0.0 
  │ │   ├─┬ fsevents@1.0.13 
  │ │   │ ├── nan@2.4.0 
  │ │   │ └─┬ node-pre-gyp@0.6.29 
  │ │   │   ├─┬ mkdirp@0.5.1 
  │ │   │   │ └── minimist@0.0.8 
  │ │   │   ├─┬ nopt@3.0.6 
  │ │   │   │ └── abbrev@1.0.7 
  │ │   │   ├─┬ npmlog@3.1.2 
  │ │   │   │ ├─┬ are-we-there-yet@1.1.2 
  │ │   │   │ │ └── delegates@1.0.0 
  │ │   │   │ ├── console-control-strings@1.1.0 
  │ │   │   │ ├─┬ gauge@2.6.0 
  │ │   │   │ │ ├── aproba@1.0.4 
  │ │   │   │ │ ├── has-color@0.1.7 
  │ │   │   │ │ ├── has-unicode@2.0.1 
  │ │   │   │ │ ├── object-assign@4.1.0 
  │ │   │   │ │ ├── signal-exit@3.0.0 
  │ │   │   │ │ ├─┬ string-width@1.0.1 
  │ │   │   │ │ │ ├─┬ code-point-at@1.0.0 
  │ │   │   │ │ │ │ └── number-is-nan@1.0.0 
  │ │   │   │ │ │ └── is-fullwidth-code-point@1.0.0 
  │ │   │   │ │ ├─┬ strip-ansi@3.0.1 
  │ │   │   │ │ │ └── ansi-regex@2.0.0 
  │ │   │   │ │ └── wide-align@1.1.0 
  │ │   │   │ └── set-blocking@2.0.0 
  │ │   │   ├─┬ rc@1.1.6 
  │ │   │   │ ├── deep-extend@0.4.1 
  │ │   │   │ ├── ini@1.3.4 
  │ │   │   │ ├── minimist@1.2.0 
  │ │   │   │ └── strip-json-comments@1.0.4 
  │ │   │   ├─┬ request@2.72.0 
  │ │   │   │ ├── aws-sign2@0.6.0 
  │ │   │   │ ├── aws4@1.4.1 
  │ │   │   │ ├─┬ bl@1.1.2 
  │ │   │   │ │ └── readable-stream@2.0.6 
  │ │   │   │ ├── caseless@0.11.0 
  │ │   │   │ ├─┬ combined-stream@1.0.5 
  │ │   │   │ │ └── delayed-stream@1.0.0 
  │ │   │   │ ├── extend@3.0.0 
  │ │   │   │ ├── forever-agent@0.6.1 
  │ │   │   │ ├─┬ form-data@1.0.0-rc4 
  │ │   │   │ │ └── async@1.5.2 
  │ │   │   │ ├─┬ har-validator@2.0.6 
  │ │   │   │ │ ├─┬ chalk@1.1.3 
  │ │   │   │ │ │ ├── ansi-styles@2.2.1 
  │ │   │   │ │ │ ├── escape-string-regexp@1.0.5 
  │ │   │   │ │ │ ├── has-ansi@2.0.0 
  │ │   │   │ │ │ └── supports-color@2.0.0 
  │ │   │   │ │ ├─┬ commander@2.9.0 
  │ │   │   │ │ │ └── graceful-readlink@1.0.1 
  │ │   │   │ │ ├─┬ is-my-json-valid@2.13.1 
  │ │   │   │ │ │ ├── generate-function@2.0.0 
  │ │   │   │ │ │ ├─┬ generate-object-property@1.2.0 
  │ │   │   │ │ │ │ └── is-property@1.0.2 
  │ │   │   │ │ │ ├── jsonpointer@2.0.0 
  │ │   │   │ │ │ └── xtend@4.0.1 
  │ │   │   │ │ └─┬ pinkie-promise@2.0.1 
  │ │   │   │ │   └── pinkie@2.0.4 
  │ │   │   │ ├─┬ hawk@3.1.3 
  │ │   │   │ │ ├── boom@2.10.1 
  │ │   │   │ │ ├── cryptiles@2.0.5 
  │ │   │   │ │ ├── hoek@2.16.3 
  │ │   │   │ │ └── sntp@1.0.9 
  │ │   │   │ ├─┬ http-signature@1.1.1 
  │ │   │   │ │ ├── assert-plus@0.2.0 
  │ │   │   │ │ ├─┬ jsprim@1.3.0 
  │ │   │   │ │ │ ├── extsprintf@1.0.2 
  │ │   │   │ │ │ ├── json-schema@0.2.2 
  │ │   │   │ │ │ └── verror@1.3.6 
  │ │   │   │ │ └─┬ sshpk@1.8.3 
  │ │   │   │ │   ├── asn1@0.2.3 
  │ │   │   │ │   ├── assert-plus@1.0.0 
  │ │   │   │ │   ├─┬ dashdash@1.14.0 
  │ │   │   │ │   │ └── assert-plus@1.0.0 
  │ │   │   │ │   ├── ecc-jsbn@0.1.1 
  │ │   │   │ │   ├─┬ getpass@0.1.6 
  │ │   │   │ │   │ └── assert-plus@1.0.0 
  │ │   │   │ │   ├── jodid25519@1.0.2 
  │ │   │   │ │   ├── jsbn@0.1.0 
  │ │   │   │ │   └── tweetnacl@0.13.3 
  │ │   │   │ ├── is-typedarray@1.0.0 
  │ │   │   │ ├── isstream@0.1.2 
  │ │   │   │ ├── json-stringify-safe@5.0.1 
  │ │   │   │ ├─┬ mime-types@2.1.11 
  │ │   │   │ │ └── mime-db@1.23.0 
  │ │   │   │ ├── node-uuid@1.4.7 
  │ │   │   │ ├── oauth-sign@0.8.2 
  │ │   │   │ ├── qs@6.1.0 
  │ │   │   │ ├── stringstream@0.0.5 
  │ │   │   │ ├── tough-cookie@2.2.2 
  │ │   │   │ └── tunnel-agent@0.4.3 
  │ │   │   ├─┬ rimraf@2.5.2 
  │ │   │   │ └─┬ glob@7.0.5 
  │ │   │   │   ├── fs.realpath@1.0.0 
  │ │   │   │   ├── inflight@1.0.5 
  │ │   │   │   ├─┬ minimatch@3.0.2 
  │ │   │   │   │ └─┬ brace-expansion@1.1.5 
  │ │   │   │   │   ├── balanced-match@0.4.1 
  │ │   │   │   │   └── concat-map@0.0.1 
  │ │   │   │   └── path-is-absolute@1.0.0 
  │ │   │   ├── semver@5.2.0 
  │ │   │   ├─┬ tar@2.2.1 
  │ │   │   │ ├── block-stream@0.0.9 
  │ │   │   │ ├─┬ fstream@1.0.10 
  │ │   │   │ │ └── graceful-fs@4.1.4 
  │ │   │   │ └── inherits@2.0.1 
  │ │   │   └─┬ tar-pack@3.1.4 
  │ │   │     ├─┬ debug@2.2.0 
  │ │   │     │ └── ms@0.7.1 
  │ │   │     ├─┬ fstream-ignore@1.0.5 
  │ │   │     │ └── minimatch@3.0.2 
  │ │   │     ├─┬ once@1.3.3 
  │ │   │     │ └── wrappy@1.0.2 
  │ │   │     ├─┬ readable-stream@2.1.4 
  │ │   │     │ ├── buffer-shims@1.0.0 
  │ │   │     │ ├── core-util-is@1.0.2 
  │ │   │     │ ├── isarray@1.0.0 
  │ │   │     │ ├── process-nextick-args@1.0.7 
  │ │   │     │ ├── string_decoder@0.10.31 
  │ │   │     │ └── util-deprecate@1.0.2 
  │ │   │     └── uid-number@0.0.6 
  │ │   ├── glob-parent@2.0.0 
  │ │   ├─┬ is-binary-path@1.0.1 
  │ │   │ └── binary-extensions@1.5.0 
  │ │   ├─┬ is-glob@2.0.1 
  │ │   │ └── is-extglob@1.0.0 
  │ │   └─┬ readdirp@2.1.0 
  │ │     └── set-immediate-shim@1.0.1 
  │ └─┬ webpack-core@0.6.8 
  │   └─┬ source-map@0.4.4 
  │     └── amdefine@1.0.0 
  └─┬ webpack-dev-server@1.14.1 
    ├─┬ compression@1.6.2 
    │ ├─┬ accepts@1.3.3 
    │ │ └── negotiator@0.6.1 
    │ ├── bytes@2.3.0 
    │ ├─┬ compressible@2.0.8 
    │ │ └── mime-db@1.23.0 
    │ ├── on-headers@1.0.1 
    │ └── vary@1.1.0 
    ├── connect-history-api-fallback@1.1.0 
    ├─┬ express@4.14.0 
    │ ├── array-flatten@1.1.1 
    │ ├── content-disposition@0.5.1 
    │ ├── content-type@1.0.2 
    │ ├── cookie@0.3.1 
    │ ├── cookie-signature@1.0.6 
    │ ├── depd@1.1.0 
    │ ├── encodeurl@1.0.1 
    │ ├── escape-html@1.0.3 
    │ ├── etag@1.7.0 
    │ ├─┬ finalhandler@0.5.0 
    │ │ ├── statuses@1.3.0 
    │ │ └── unpipe@1.0.0 
    │ ├── fresh@0.3.0 
    │ ├── merge-descriptors@1.0.1 
    │ ├── methods@1.1.2 
    │ ├─┬ on-finished@2.3.0 
    │ │ └── ee-first@1.1.1 
    │ ├── parseurl@1.3.1 
    │ ├── path-to-regexp@0.1.7 
    │ ├─┬ proxy-addr@1.1.2 
    │ │ ├── forwarded@0.1.0 
    │ │ └── ipaddr.js@1.1.1 
    │ ├── qs@6.2.0 
    │ ├── range-parser@1.2.0 
    │ ├─┬ send@0.14.1 
    │ │ ├── destroy@1.0.4 
    │ │ └── mime@1.3.4 
    │ ├── serve-static@1.11.1 
    │ ├─┬ type-is@1.6.13 
    │ │ └── media-typer@0.3.0 
    │ └── utils-merge@1.0.0 
    ├─┬ http-proxy@1.14.0 
    │ ├── eventemitter3@1.2.0 
    │ └── requires-port@1.0.0 
    ├─┬ serve-index@1.8.0 
    │ ├── batch@0.5.3 
    │ ├─┬ http-errors@1.5.0 
    │ │ └── setprototypeof@1.0.1 
    │ └── mime-types@2.1.11 
    ├─┬ sockjs@0.3.17 
    │ ├─┬ faye-websocket@0.10.0 
    │ │ └─┬ websocket-driver@0.6.5 
    │ │   └── websocket-extensions@0.1.1 
    │ └── uuid@2.0.2 
    ├─┬ sockjs-client@1.1.1 
    │ ├─┬ eventsource@0.1.6 
    │ │ └─┬ original@1.0.0 
    │ │   └── url-parse@1.0.5 
    │ ├── faye-websocket@0.11.0 
    │ ├── json3@3.3.2 
    │ └─┬ url-parse@1.1.1 
    │   └── querystringify@0.0.3 
    ├── stream-cache@0.0.2 
    ├── strip-ansi@3.0.1 
    └─┬ webpack-dev-middleware@1.6.1 
      └── mime@1.3.4 
@vjeux
Copy link
Contributor Author

vjeux commented Jul 18, 2016

Sorted by size

7.1 M  fsevents
7.1 M  caniuse-db
6.6 M  core-js
5.2 M  fbjs
4.5 M  lodash
3.1 M  es5-ext
3.0 M  react
2.2 M  eslint
1.5 M  sha.js
1.4 M  crypto-browserify
1.3 M  webpack
988 K  pako
936 K  eslint-plugin-jsx-a11y
932 K  babel-runtime
888 K  escope
784 K  source-map
760 K  postcss
688 K  clean-css
676 K  bluebird
604 K  json5
576 K  webpack-dev-server
568 K  uglify-js
568 K  renderkid
496 K  htmlparser2
476 K  acorn
460 K  immutable
456 K  svgo
452 K  source-map-support
444 K  nan
420 K  rx-lite
420 K  csso
412 K  serve-index
400 K  eslint-plugin-import
392 K  iconv-lite
384 K  sockjs-client
376 K  dom-converter
368 K  js-yaml
360 K  eslint-plugin-react
352 K  shelljs
332 K  autoprefixer
328 K  jsx-ast-utils
280 K  webpack-core
276 K  optimist
272 K  babylon
268 K  stream-cache
252 K  xregexp
252 K  resolve
244 K  table
236 K  babel-traverse
236 K  babel-plugin-transform-regenerator
232 K  esprima
228 K  express
220 K  sockjs
216 K  is-my-json-valid
216 K  buffer
212 K  ua-parser-js
204 K  source-list-map
200 K  browserify-zlib
192 K  promise
192 K  node-libs-browser
188 K  watchpack
188 K  coa
180 K  argparse
172 K  stream-browserify
172 K  mime-db
168 K  readable-stream
168 K  babel-types
160 K  doctrine
156 K  mkdirp
156 K  es6-set
156 K  enhanced-resolve
144 K  postcss-selector-parser
144 K  babel-generator
144 K  babel-core
136 K  q
124 K  yargs
124 K  url
120 K  qs
116 K  node-fetch
116 K  es6-map
116 K  domhandler
112 K  tv4
112 K  send
108 K  websocket-driver
108 K  inquirer
108 K  html-minifier
104 K  postcss-merge-longhand
104 K  events
104 K  cliui
100 K  he
 96 K  pretty-error
 96 K  es6-iterator
 96 K  entities
 92 K  readdirp
 92 K  ipaddr.js
 92 K  espree
 92 K  chokidar
 88 K  webpack-dev-middleware
 88 K  relateurl
 88 K  original
 88 K  minimist
 88 K  loader-utils
 88 K  event-emitter
 88 K  es6-symbol
 88 K  cli-width
 88 K  async
 84 K  websocket-extensions
 84 K  uuid
 84 K  http-browserify
 84 K  eventsource
 84 K  es6-weak-map
 80 K  util
 80 K  sprintf-js
 80 K  optionator
 80 K  js-base64
 80 K  faye-websocket
 80 K  eslint-config-airbnb-base
 80 K  cssnano
 76 K  sax
 76 K  mime
 76 K  html-webpack-plugin
 76 K  colors
 72 K  toposort
 72 K  querystring
 72 K  lodash._baseiteratee
 72 K  json3
 72 K  http-proxy
 72 K  eslint-config-airbnb
 72 K  convert-source-map
 68 K  uniqid
 68 K  text-table
 68 K  glob
 68 K  esrecurse
 68 K  css-loader
 64 K  whet.extend
 64 K  micromatch
 64 K  json-stable-stringify
 64 K  esutils
 64 K  domutils
 60 K  wordwrap
 60 K  reduce-function-call
 60 K  reduce-css-calc
 60 K  css-select
 60 K  cross-spawn
 56 K  utila
 56 K  prelude-ls
 56 K  memory-fs
 56 K  loose-envify
 56 K  domain-browser
 56 K  depd
 56 K  debug
 56 K  d
 56 K  commander
 56 K  big.js
 56 K  assert
 52 K  typedarray
 52 K  timers-browserify
 52 K  regjsparser
 52 K  postcss-ordered-values
 52 K  asap
 48 K  vm-browserify
 48 K  react-dom
 48 K  querystring-es3
 48 K  no-case
 48 K  levn
 48 K  isomorphic-fetch
 48 K  globals
 48 K  estraverse
 48 K  color-convert
 48 K  clone
 44 K  yallist
 44 K  through
 44 K  regenerate
 44 K  negotiator
 44 K  minimatch
 44 K  macaddress
 44 K  errno
 44 K  connect-history-api-fallback
 44 K  colormin
 44 K  browserslist
 44 K  babel-plugin-transform-es2015-classes
 40 K  run-async
 40 K  preserve
 40 K  postcss-value-parser
 40 K  postcss-modules-local-by-default
 40 K  postcss-discard-overridden
 40 K  opn
 40 K  jsesc
 40 K  isexe
 40 K  graceful-fs
 40 K  deep-is
 40 K  date-now
 40 K  cssesc
 40 K  console-browserify
 40 K  clap
 40 K  babel-plugin-transform-es2015-parameters
 40 K  babel-plugin-transform-es2015-block-scoping
 40 K  babel-loader
 40 K  acorn-jsx
 36 K  xtend
 36 K  type-check
 36 K  tapable
 36 K  style-loader
 36 K  regenerator-runtime
 36 K  progress
 36 K  postcss-modules-values
 36 K  postcss-minify-font-values
 36 K  postcss-loader
 36 K  pbkdf2-compat
 36 K  jsonify
 36 K  has-own
 36 K  emojis-list
 36 K  core-util-is
 36 K  chalk
 36 K  babel-plugin-transform-es2015-modules-commonjs
 36 K  Base64
 32 K  ripemd160
 32 K  regexpu-core
 32 K  punycode
 32 K  prr
 32 K  lodash._stringtopath
 32 K  isarray
 32 K  find-up
 32 K  file-entry-cache
 32 K  encoding
 32 K  defined
 32 K  css-selector-tokenizer
 32 K  content-disposition
 32 K  compression
 32 K  color-string
 32 K  base64-js
 32 K  babel-plugin-transform-es2015-destructuring
 32 K  babel-helpers
 32 K  async-each
 32 K  amdefine
 28 K  which
 28 K  whatwg-fetch
 28 K  url-parse
 28 K  uglify-to-browserify
 28 K  serve-static
 28 K  rimraf
 28 K  requires-port
 28 K  querystringify
 28 K  process
 28 K  private
 28 K  postcss-svgo
 28 K  postcss-reduce-initial
 28 K  postcss-reduce-idents
 28 K  postcss-minify-selectors
 28 K  postcss-merge-rules
 28 K  postcss-discard-comments
 28 K  nth-check
 28 K  lru-cache
 28 K  lodash._baseeach
 28 K  is-property
 28 K  is-buffer
 28 K  imurmurhash
 28 K  ieee754
 28 K  icss-replace-symbols
 28 K  glob-parent
 28 K  generate-object-property
 28 K  generate-function
 28 K  fs.realpath
 28 K  flat-cache
 28 K  fill-range
 28 K  fastparse
 28 K  dom-serializer
 28 K  cookie
 28 K  concat-map
 28 K  batch
 28 K  babel-register
 28 K  accepts
 24 K  util-deprecate
 24 K  uniq
 24 K  type-is
 24 K  string_decoder
 24 K  statuses
 24 K  regjsgen
 24 K  pseudomap
 24 K  proxy-addr
 24 K  process-nextick-args
 24 K  postcss-zindex
 24 K  postcss-reduce-transforms
 24 K  postcss-discard-unused
 24 K  postcss-convert-values
 24 K  pluralize
 24 K  path-to-regexp
 24 K  os-browserify
 24 K  on-finished
 24 K  num2fraction
 24 K  ms
 24 K  media-typer
 24 K  lodash.rest
 24 K  js-tokens
 24 K  inherits
 24 K  indexof
 24 K  indexes-of
 24 K  http-errors
 24 K  graceful-readlink
 24 K  etag
 24 K  eslint-loader
 24 K  content-type
 24 K  color
 24 K  builtin-modules
 24 K  braces
 24 K  babel-helper-replace-supers
 20 K  vary
 20 K  utils-merge
 20 K  user-home
 20 K  upper-case-first
 20 K  upper-case
 20 K  unpipe
 20 K  uniqs
 20 K  tryit
 20 K  swap-case
 20 K  supports-color
 20 K  strip-json-comments
 20 K  repeating
 20 K  regex-cache
 20 K  range-parser
 20 K  randomatic
 20 K  postcss-unique-selectors
 20 K  postcss-normalize-url
 20 K  postcss-normalize-charset
 20 K  postcss-minify-params
 20 K  postcss-minify-gradients
 20 K  postcss-message-helpers
 20 K  postcss-merge-idents
 20 K  postcss-filter-plugins
 20 K  postcss-discard-empty
 20 K  postcss-discard-duplicates
 20 K  postcss-colormin
 20 K  postcss-calc
 20 K  pinkie
 20 K  path-browserify
 20 K  parseurl
 20 K  on-headers
 20 K  mute-stream
 20 K  mime-types
 20 K  methods
 20 K  merge-descriptors
 20 K  lower-case-first
 20 K  lower-case
 20 K  lodash.words
 20 K  lodash.tostring
 20 K  lodash.endswith
 20 K  lodash.deburr
 20 K  lodash._basetostring
 20 K  kind-of
 20 K  jsonpointer
 20 K  is-upper-case
 20 K  is-lower-case
 20 K  invariant
 20 K  interpret
 20 K  ignore
 20 K  glob-base
 20 K  fresh
 20 K  forwarded
 20 K  flatten
 20 K  finalhandler
 20 K  fast-levenshtein
 20 K  expand-range
 20 K  eventemitter3
 20 K  eslint-import-resolver-node
 20 K  encodeurl
 20 K  detect-indent
 20 K  css-what
 20 K  cookie-signature
 20 K  compressible
 20 K  color-name
 20 K  center-align
 20 K  bytes
 20 K  balanced-match
 20 K  babel-template
 20 K  babel-plugin-transform-es2015-template-literals
 20 K  babel-plugin-transform-es2015-spread
 20 K  babel-plugin-transform-es2015-for-of
 20 K  babel-plugin-transform-es2015-computed-properties
 20 K  babel-messages
 20 K  babel-helper-function-name
 20 K  babel-helper-define-map
 20 K  babel-helper-builder-react-jsx
 20 K  alphanum-sort
 20 K  align-text
 16 K  xml-char-classes
 16 K  write
 16 K  wrappy
 16 K  window-size
 16 K  url-loader
 16 K  tty-browserify
 16 K  to-fast-properties
 16 K  title-case
 16 K  strip-ansi
 16 K  string-width
 16 K  strict-uri-encode
 16 K  sort-keys
 16 K  snake-case
 16 K  slice-ansi
 16 K  shebang-regex
 16 K  setprototypeof
 16 K  sentence-case
 16 K  right-align
 16 K  restore-cursor
 16 K  resolve-from
 16 K  repeat-string
 16 K  repeat-element
 16 K  read-json-sync
 16 K  query-string
 16 K  postcss-modules-scope
 16 K  pkg-up
 16 K  pkg-dir
 16 K  pinkie-promise
 16 K  pify
 16 K  path-is-inside
 16 K  path-is-absolute
 16 K  path-exists
 16 K  path-case
 16 K  pascal-case
 16 K  parse-glob
 16 K  param-case
 16 K  os-tmpdir
 16 K  os-homedir
 16 K  onetime
 16 K  once
 16 K  object.omit
 16 K  object-assign
 16 K  number-is-nan
 16 K  normalize-url
 16 K  normalize-range
 16 K  normalize-path
 16 K  longest
 16 K  lodash.findindex
 16 K  lodash.find
 16 K  lodash.cond
 16 K  lodash.camelcase
 16 K  lodash._root
 16 K  lodash._createcompounder
 16 K  lodash._basefindindex
 16 K  lodash._basefind
 16 K  lazy-cache
 16 K  isobject
 16 K  is-svg
 16 K  is-resolvable
 16 K  is-primitive
 16 K  is-posix-bracket
 16 K  is-plain-obj
 16 K  is-number
 16 K  is-glob
 16 K  is-fullwidth-code-point
 16 K  is-finite
 16 K  is-extglob
 16 K  is-extendable
 16 K  is-equal-shallow
 16 K  is-dotfile
 16 K  is-binary-path
 16 K  is-absolute-url
 16 K  inflight
 16 K  https-browserify
 16 K  home-or-tmp
 16 K  header-case
 16 K  has-flag
 16 K  has-ansi
 16 K  globby
 16 K  for-own
 16 K  for-in
 16 K  figures
 16 K  extglob
 16 K  expand-brackets
 16 K  escape-string-regexp
 16 K  escape-html
 16 K  ee-first
 16 K  dot-case
 16 K  domelementtype
 16 K  destroy
 16 K  del
 16 K  decamelize
 16 K  contains-path
 16 K  constants-browserify
 16 K  constant-case
 16 K  concat-stream
 16 K  code-point-at
 16 K  cli-cursor
 16 K  change-case
 16 K  camelcase
 16 K  camel-case
 16 K  brace-expansion
 16 K  binary-extensions
 16 K  babel-preset-react
 16 K  babel-preset-es2016
 16 K  babel-preset-es2015
 16 K  babel-plugin-transform-strict-mode
 16 K  babel-plugin-transform-react-jsx-source
 16 K  babel-plugin-transform-react-jsx-self
 16 K  babel-plugin-transform-react-jsx
 16 K  babel-plugin-transform-react-inline-elements
 16 K  babel-plugin-transform-react-display-name
 16 K  babel-plugin-transform-react-constant-elements
 16 K  babel-plugin-transform-object-rest-spread
 16 K  babel-plugin-transform-flow-strip-types
 16 K  babel-plugin-transform-exponentiation-operator
 16 K  babel-plugin-transform-es2015-unicode-regex
 16 K  babel-plugin-transform-es2015-typeof-symbol
 16 K  babel-plugin-transform-es2015-sticky-regex
 16 K  babel-plugin-transform-es2015-shorthand-properties
 16 K  babel-plugin-transform-es2015-object-super
 16 K  babel-plugin-transform-es2015-literals
 16 K  babel-plugin-transform-es2015-function-name
 16 K  babel-plugin-transform-es2015-duplicate-keys
 16 K  babel-plugin-transform-es2015-block-scoped-functions
 16 K  babel-plugin-transform-es2015-arrow-functions
 16 K  babel-plugin-syntax-object-rest-spread
 16 K  babel-plugin-syntax-jsx
 16 K  babel-plugin-syntax-flow
 16 K  babel-plugin-syntax-exponentiation-operator
 16 K  babel-plugin-syntax-async-functions
 16 K  babel-plugin-check-es2015-constants
 16 K  babel-helper-regex
 16 K  babel-helper-optimise-call-expression
 16 K  babel-helper-hoist-variables
 16 K  babel-helper-get-function-arity
 16 K  babel-helper-explode-assignable-expression
 16 K  babel-helper-call-delegate
 16 K  babel-helper-builder-binary-assignment-operator-visitor
 16 K  babel-code-frame
 16 K  arrify
 16 K  array-unique
 16 K  array-uniq
 16 K  array-union
 16 K  array-flatten
 16 K  arr-flatten
 16 K  arr-diff
 16 K  anymatch
 16 K  ansi-styles
 16 K  ansi-regex
 16 K  ansi-escapes
 12 K  slash
 12 K  set-immediate-shim
 12 K  require-uncached
 12 K  readline2
 12 K  prepend-http
 12 K  postcss-modules-extract-imports
 12 K  ncname
 12 K  json-loader
 12 K  is-stream
 12 K  is-path-inside
 12 K  is-path-in-cwd
 12 K  is-path-cwd
 12 K  html-comment-regex
 12 K  get-stdin
 12 K  filename-regex
 12 K  file-loader
 12 K  exit-hook
 12 K  damerau-levenshtein
 12 K  css-color-names
 12 K  callsites
 12 K  caller-path
 12 K  boolbase

@eanplatter
Copy link
Contributor

Perhaps by removing npm progress? Perhaps by making an .npmrc file with progress=false. I believe there are still big performance gains doing that.

@vjeux
Copy link
Contributor Author

vjeux commented Jul 18, 2016

If we remove npm progress, we should implement some sort of spinner. Otherwise, the user would be waiting for 2 entire minutes with no feedback on what is happening :(

@eanplatter
Copy link
Contributor

I agree, we could make a spinner that looks a lot better too, using something like Ora

@eanplatter
Copy link
Contributor

I am doing a time test now, I'll post the difference here in a couple minutes.

@eanplatter
Copy link
Contributor

Hrmm, looks like it isn't really an issue anymore with npm's performance. I got 1.29 without progress and 1.25 with progress 😖

@gaearon
Copy link
Contributor

gaearon commented Jul 18, 2016

Yea, there was a bug in npm related to that but it was fixed.

@lacker
Copy link
Contributor

lacker commented Jul 18, 2016

Maybe it would be simpler to make something that wasn't specific to this project, that just sped up npm in general. Like if you could specify one cached blob for particular architectures, and then npm installed it, or at least it was a standard mechanism.

@kentcdodds
Copy link
Contributor

Perhaps the project could use bundledDependencies?

@gaearon
Copy link
Contributor

gaearon commented Jul 20, 2016

@kentcdodds Thanks so much for the tip.
This should be better after #41.

@gaearon
Copy link
Contributor

gaearon commented Jul 21, 2016

I don’t think we can do much beyond what bundledDependencies provides us.
Let’s stick with it for now and see how it goes.

I’ve read about known issues with npm 2.x + shrinkwrap + bundledDependencies. npm doesn’t plan to fix it. Shrinkwrap isn’t very common in beginner projects so I think we’ll punt on this. If people want to use shrinkwrap and have issues with our package, they can either upgrade to npm 3 (even on older node) or eject (and then all dependencies will be theirs).

@gaearon gaearon closed this as completed Jul 21, 2016
stayradiated pushed a commit to stayradiated/create-react-app that referenced this issue Nov 13, 2016
stayradiated pushed a commit to stayradiated/create-react-app that referenced this issue Nov 13, 2016
@wtgtybhertgeghgtwtg
Copy link
Contributor

wtgtybhertgeghgtwtg commented Nov 23, 2016

A big problem here is deduping sub-dependencies. At time of writing, react-scripts can use

  • five different versions of readable-stream
  • three different versions of each async, minimatch, minimist, faye-websocket, wordwrap, source-map, acorn, and estraverse
  • two different versions of each debug, ms, uuid, punycode, qs, assert-plus, commander, supports-color, string-width, is-fullwidth-code-point, is-glob, is-extglob, mime, sockjs-client, url-parse, babel-plugin-transform-es2015-destructuring, balanced-match, glob, inherits, uglify-js, yargs, window-size, cliui, camelcase, json5, once, js-yaml, esprima, path-exists, strip-bom, fsevents, colors, iconv-lite, isarray, babel-runtime, jsesc, babel-core, callsites, utila, domelementtype, domutils, doctrine, regexpu-core, autoprefixer, and babel-plugin-transform-es2015-parameters

There are a handful of other things that take up some time (e.g. packages that depend on stuff for a CLI that isn't used), but deduping is probably a bigger issue.

@gaearon
Copy link
Contributor

gaearon commented Nov 23, 2016

Hopefully it should get better with Yarn now that 0.8.0 will use it out of the box when it's installed.

@wtgtybhertgeghgtwtg
Copy link
Contributor

I am super looking forward to that, but all those versions are still going to be installed. I think the --flat flag might help, but I haven't tried it.

@gaearon
Copy link
Contributor

gaearon commented Nov 23, 2016

Why are they getting installed? Is this because some packages depend on incompatible versions? Can we help by sending PRs to the packages using the more outdated versions?

@wtgtybhertgeghgtwtg
Copy link
Contributor

wtgtybhertgeghgtwtg commented Nov 23, 2016

Why are they getting installed? Is this because some packages depend on incompatible versions?

Yes.

Can we help by sending PRs to the packages using the more outdated versions?

I have been trying to do so. The dependency graph shows where multiple versions are used, but it is kinda discouraging to look at.
I'm sorry, that software doesn't take into account deduplication as I had thought it did. The numbers I had give are inaccurate.

@wtgtybhertgeghgtwtg
Copy link
Contributor

Another thing that would help would be getting some of the dependencies to exclude tests/examples/config files from their packages. Some of them have a lot of tests (for example, sha.js has over 700 KB of tests), but it's mostly just because they add up.

@gaearon
Copy link
Contributor

gaearon commented Nov 30, 2016

@wtgtybhertgeghgtwtg Would you like to create a new issue aimed at slimming our dependencies down? Nobody is working on it but it should be doable given there's somebody who can lead the effort.

@wtgtybhertgeghgtwtg
Copy link
Contributor

I would love to. I'll try to get that started today.

@wtgtybhertgeghgtwtg
Copy link
Contributor

I have a list of things that could be done to slim down dependencies, but it has hundreds of items. Should I make the issue and only list the larger ones?

@gaearon
Copy link
Contributor

gaearon commented Dec 6, 2016

Yea that's a good start.

@lock lock bot locked and limited conversation to collaborators Jan 22, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants