infinitered / infinitered/phoenix_base

Large node_modules folder with bare install

Open
#23 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Elixir
Stars
65
Forks
16
PR merge metrics
No merged PRs in 30d

Description

A brand-new `mix phoenix.new ` generates a 18.6 MB, 321 item `node_modules` folder.

PhoenixBase generates a 143 MB, 647 item `node_modules` folder. :-(

We should take a good look at all these dependencies and figure out a better way.

Here are the worst offenders (> 100k, ascending order).

```
100K boom/
100K jodid25519/
104K dashdash/
104K eslint-plugin-standard/
104K events/
104K har-validator/
104K postcss-merge-longhand/
112K kew/
116K es6-map/
116K es6-promise/
116K fstream/
120K standard-format/
124K gauge/
124K url/
128K babel-generator/
128K qs/
136K q/
140K bourbon-neat/
144K detective/
148K babel-core/
152K postcss-selector-parser/
156K enhanced-resolve/
156K es6-set/
156K mkdirp/
156K postcss-modules-local-by-default/
164K commoner/
168K babel-types/
168K normalize-package-data/
172K mime-db/
172K stream-browserify/
176K disparity/
176K doctrine/
176K readable-stream/
180K argparse/
184K ast-types/
184K concat-stream/
184K tweetnacl/
188K coa/
188K fs-extra/
188K watchpack/
192K node-libs-browser/
192K shelljs/
196K hoek/
200K browserify-zlib/
204K source-list-map/
208K babel-traverse/
212K babel-plugin-transform-regenerator/
216K bcrypt-pbkdf/
216K is-my-json-valid/
216K optimist/
220K extract-zip/
224K bl/
224K extract-text-webpack-plugin/
224K json-schema/
224K sass-loader/
228K rocambole-linebreak/
232K esprima/
240K request/
240K tar/
240K yargs/
244K tough-cookie/
252K resolve/
256K sshpk/
276K babylon/
280K webpack-core/
296K eslint-plugin-react/
340K autoprefixer/
360K bourbon/
368K js-yaml/
376K buffer/
392K iconv-lite/
420K rx-lite/
424K csso/
424K hawk/
436K rocambole/
444K nan/
452K source-map-support/
456K svgo/
536K bluebird/
592K acorn/
604K json5/
676K async/
776K pako/
784K postcss/
784K source-map/
860K editorconfig/
888K escope/
928K uglify-js/
932K babel-runtime/
1.2M js-beautify/
1.2M regenerator/
1.3M esformatter-literal-notation/
1.3M recast/
1.4M crypto-browserify/
1.5M sha.js/
1.7M esformatter/
1.8M defs/
1.8M eslint/
1.9M node-gyp/
2.1M babel-plugin-proto-to-assign/
2.1M copy-webpack-plugin/
2.2M inquirer/
2.2M mout/
2.3M rocambole-indent/
2.8M webpack/
2.9M handlebars/
3.1M es5-ext/
4.4M globule/
4.7M lodash/
6.6M core-js/
7.1M fsevents/
7.4M caniuse-db/
11M esformatter-jsx/
```

cc @danielberkompas @darinwilson @zberkom @codeithuman @yulianglukhenko @ryanlntn

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce a bare `mix phoenix.new ` and compare its generated `node_modules` size with PhoenixBase, using the dependency list in the issue as the starting inventory. Inspect the generated dependency manifests and identify which packages can be removed or replaced; done means a materially smaller install without breaking the generated application.

Written by the indexing model from the issue text.

Assessment

Tech stack
elixir, node.js
Domain
build-system, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.