infinitered / phoenix_base

Template project for Phoenix
MIT License
65 stars 16 forks source link

Large node_modules folder with bare install #23

Open jamonholmgren opened 8 years ago

jamonholmgren commented 8 years ago

A brand-new mix phoenix.new <myapp> 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

darinwilson commented 8 years ago

I certainly agree that we should do an audit to make sure that the things we're including are actually valuable, but I question the value of comparing to phoenix.new - the point of this project is to provide extras that aren't included in the standard project, so our JS setup is definitely going to be bigger, possibly by a substantial margin.

That said, we should certainly clear out any cruft that doesn't belong, but I think a more meaningful metric would be the size of the compiled JS package, as that's what's likely to have real impact. The dev dependencies will probably be pretty heavy, given babel and all its add-ons, but I don't think that should be much of a factor.

On Sun, Sep 4, 2016, 10:49 PM Jamon Holmgren notifications@github.com wrote:

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 https://github.com/danielberkompas @darinwilson https://github.com/darinwilson @zberkom https://github.com/zberkom @codeithuman https://github.com/codeithuman @yulianglukhenko https://github.com/yulianglukhenko @ryanlntn https://github.com/ryanlntn

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/infinitered/phoenix_base/issues/23, or mute the thread https://github.com/notifications/unsubscribe-auth/AABVBAAYc6oA93h87UnrahNhMofAGNoXks5qm61ZgaJpZM4J0wlE .

jamonholmgren commented 8 years ago

@darinwilson Sounds eminently reasonable.

yulolimum commented 8 years ago

@jamonholmgren @darinwilson I had a somewhat related discussion starting here: https://infinitered.slack.com/archives/e-lixir/p1469475603000107 .