Skip to content
This repository has been archived by the owner on Dec 13, 2018. It is now read-only.

Nuclide full install takes 2.6 GB and 340941 files, breaking Settings -> Packages #203

Closed
benad opened this issue Sep 21, 2015 · 6 comments

Comments

@benad
Copy link

benad commented Sep 21, 2015

I installed "nuclide-installer", version 0.0.32, on a fresh install of Atom 1.0.15 (rm -Rf ~/.atom), and it installs 2.6 GB of data spread across roughly 340K files. Attempting to use "Settings -> Packages" to uninstall it will freeze.

$ du -hs ~/.atom
2.6G    /Users/bnadeau/.atom
$ find ~/.atom/packages -type f | wc -l
  340941
$ ncdu ~/.atom/packages
ncdu 1.9 ~ Use the arrow keys to navigate, press ? for help                     
--- /Users/testuser/.atom/packages ----------------------------------------------
  246.8MiB [##########] /nuclide-toolbar                                        
  230.1MiB [######### ] /nuclide-hg-repository
  226.0MiB [######### ] /nuclide-clang-atom
  206.9MiB [########  ] /nuclide-remote-projects
  129.0MiB [#####     ] /nuclide-buck-files
  125.2MiB [#####     ] /nuclide-find-references
  124.1MiB [#####     ] /nuclide-quick-open
  123.8MiB [#####     ] /nuclide-diff-view
  123.4MiB [####      ] /nuclide-hack-symbol-provider
  120.2MiB [####      ] /nuclide-flow
  119.3MiB [####      ] /nuclide-hack
  119.2MiB [####      ] /nuclide-file-watcher
  118.9MiB [####      ] /nuclide-file-tree-deux
  118.5MiB [####      ] /nuclide-fuzzy-filename-provider
  118.3MiB [####      ] /nuclide-arcanist
  117.9MiB [####      ] /nuclide-debugger-hhvm
  117.9MiB [####      ] /nuclide-ocaml
   42.5MiB [#         ] /nuclide-debugger-atom
   34.5MiB [#         ] /nuclide-format-js
   13.3MiB [          ] /nuclide-diagnostics-ui
    9.8MiB [          ] /nuclide-test-runner
    7.9MiB [          ] /nuclide-file-tree
    5.7MiB [          ] /hyperclick
    2.8MiB [          ] /nuclide-blame
    2.7MiB [          ] /nuclide-blame-ui
    2.0MiB [          ] /nuclide-type-hint
    1.9MiB [          ] /nuclide-diagnostics-store
    1.7MiB [          ] /nuclide-blame-provider-hg
    1.3MiB [          ] /nuclide-objc
    1.0MiB [          ] /nuclide-debugger-lldb
  992.0KiB [          ] /nuclide-installer
  244.0KiB [          ] /nuclide-language-hack
   52.0KiB [          ] /nuclide-code-format
   44.0KiB [          ] /nuclide-open-filenames-provider
   40.0KiB [          ] /nuclide-move-pane
    4.0KiB [          ]  README.md
 Total disk usage:   2.6GiB  Apparent size:   1.5GiB  Items: 395925  
@bsr203
Copy link

bsr203 commented Sep 22, 2015

+1 same issue here.

du -hs ~/.atom
2.7G /Users/bsr/.atom

and settings/packages won't open

removed all packages manually get back atom

~/.a/packages ❯❯❯ rm -rf nuclide-*

@bitfrost
Copy link

+1 breaks the settings UI for me as well (macos)

@benad
Copy link
Author

benad commented Sep 23, 2015

For fun, here are the top 25 most duplicated files, with their counts and checksums:

$ ( find ~/.atom/packages -type f -print0 | xargs -0 gmd5sum ) | \
perl -nle '/^([0-9a-f]+)\s+.*?([^\/]+)$/; print qq{$1 $2}' | \
sort | uniq -c | perl -ne '/\s*(\d+)/; print if ($1 >= 1)' | \
sort -rn | head -n 25
1788 a12ebca0510a773644101a99a867d210 license
1276 261e20913bc39df517150fceaba151f0 is-implemented.js
1122 3e26748d703fee21584741aff003a2cf index.js
 975 9d1bac7eb794ecc91fcdf0d58855c289 .npmignore
 964 82703a69f6d7411dde679954c2fd9dca LICENSE
 759 962f08795eb9a671800e3074175103e6 .babelrc
 759 78c115278d6a540381c85d452943e776 LICENSE
 585 cbc337c06ae3566f4e832574b015857b LICENSE
 499 aea1cde69645f4b99be4ff7ca9abcce1 LICENSE
 400 b2d989bc186e7f6b418a5fdd5cc0b56b LICENSE
 390 36a9bd6e6773c694e1ceec8a276e1a6f .npmignore
 369 9a948e25c9dd10247619f816d6f38985 .travis.yml
 324 b3245a33f2d41818f14c489bd33bc4a8 LICENSE
 314 ac2c9466636f391c17c6994ea8a51338 return.js
 314 9ab72a21fa3e974dd6e50ab25c0f697e return_sync.js
 314 7440de96a1a111e53e3da08f0d8bb8eb pow.js
 312 6cb8fe224f50cfe27bc5768b62f6d92f $.unscope.js
 309 caa1c589b42a96804176247191ccb980 whitespace.js
 309 a964fe2c657d6e71d1c3a2c8bc5ce79c short.js
 309 652e865e69ae41e78d9ad95f8557f0a2 long.js
 309 559dd0b28e67e4da65c434476bc2c885 parse.js
 264 e4f05e8d1d75931d68b5d0e62f7b971b dict.js
 264 aec862f38feaac715b9caa5a39fb40b2 _.js
 264 ade4a55c469430319ef11785a8a912ac log.js
 264 ac61b9203591dea671c713bfefbbceb7 iterator.js

Most of these are small files. For example, whitespace.js with checksum caa1* is 191 bytes long, but can be found 20 levels down the 'nuclide-arcanist' package.

~/.atom/packages/nuclide-arcanist/node_modules/nuclide-arcanist-client/node_modules/nuclide-client/node_modules/nuclide-server/node_modules/nuclide-node-transpiler/node_modules/babel-core/node_modules/regenerator/node_modules/commoner/node_modules/mkdirp/node_modules/minimist/test/whitespace.js

Looking at it, that minimist package (ignoring potential version mismatches) has this many copies:

$ find ~/.atom/packages -name minimist -type d | wc -l
     309

"It's node_modules all the way down", I guess.

@benad
Copy link
Author

benad commented Sep 23, 2015

This seems to be a duplicate of #189 , in turn logged as an issue in atom in atom/atom#8217 .

@benad benad closed this as completed Sep 23, 2015
@bolinfest
Copy link
Contributor

Honestly, until atom/atom#8217 is fixed, installing Nuclide from source is much, much more efficient because it goes down from taking up O(N^2) to O(N) space and installation time.

@UnsungHero97
Copy link

+1

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants