Npm install did weird things

I just went through a major update of node and npm. I have everything working in several environments and projects. My question is… I just renamed my node_modules folder and ran sudo npm install in my project directory. It then installed the 29 packages that are in my package.json file and every other dependency that those packages required. All good so far but it placed every dependency in the root of the node_modules folder. It says it looks like this but it is actually flat:
├─┬ asset-builder@1.1.0
│ ├── lodash@3.10.1
│ ├─┬ main-bower-files@2.9.0
│ │ ├── extend@2.0.1
│ │ ├── multimatch@2.0.0
│ │ ├── path-exists@1.0.0
│ │ ├── strip-json-comments@1.0.4
│ │ └─┬ vinyl-fs@1.0.0
│ │ ├─┬ duplexify@3.4.2
│ │ │ └── end-of-stream@1.0.0
│ │ ├─┬ glob-stream@4.1.1
│ │ │ ├── glob@4.5.3
│ │ │ └─┬ unique-stream@2.2.0
│ │ │ └─┬ through2-filter@2.0.0
│ │ │ └── through2@2.0.0
│ │ ├── glob-watcher@0.0.8
│ │ └── object-assign@2.1.1
│ ├─┬ minimatch@2.0.10
│ │ └─┬ brace-expansion@1.1.1
│ │ ├── balanced-match@0.2.0
│ │ └── concat-map@0.0.1
│ └── object-path@0.9.2
├─┬ browser-sync@2.9.8
│ ├─┬ anymatch@1.3.0
│ │ ├── arrify@1.0.0
│ │ └─┬ micromatch@2.2.0
│ │ ├─┬ arr-diff@1.1.0
│ │ │ ├── arr-flatten@1.0.1
│ │ │ └── array-slice@0.2.3
│ │ ├── array-unique@0.2.1
│ │ ├─┬ braces@1.8.1
│ │ │ ├─┬ expand-range@1.8.1
│ │ │ │ └─┬ fill-range@2.2.2
│ │ │ │ ├── is-number@1.1.2
│ │ │ │ └── randomatic@1.1.0
│ │ │ ├── lazy-cache@0.2.3
│ │ │ ├── preserve@0.2.0
│ │ │ └── repeat-element@1.1.2
│ │ ├── expand-brackets@0.1.4
│ │ ├─┬ extglob@0.3.1
│ │ │ ├─┬ ansi-green@0.1.1
│ │ │ │ └── ansi-wrap@0.1.0
│ │ │ └── success-symbol@0.1.0
│ │ ├── filename-regex@2.0.0
│ │ ├── is-glob@1.1.3
│ │ ├── kind-of@1.1.0
│ │ ├─┬ object.omit@1.1.0
│ │ │ ├─┬ for-own@0.1.3
│ │ │ │ └── for-in@0.1.4
│ │ │ └── isobject@1.0.2
│ │ ├─┬ parse-glob@3.0.4
│ │ │ ├─┬ glob-base@0.3.0
│ │ │ │ └── is-glob@2.0.1
│ │ │ ├── is-dotfile@1.0.1
│ │ │ └── is-glob@2.0.1
│ │ └─┬ regex-cache@0.4.2
│ │ ├── is-equal-shallow@0.1.3
│ │ └── is-primitive@2.0.0
│ ├── async-each-series@0.1.1
│ ├─┬ browser-sync-client@2.3.1
│ │ ├── etag@1.7.0
│ │ └── fresh@0.3.0
│ ├─┬ browser-sync-ui@0.5.16
│ │ ├── connect-history-api-fallback@0.0.5
│ │ ├─┬ stream-throttle@0.1.3
│ │ │ └── limiter@1.0.5
│ │ └─┬ weinre@2.0.0-pre-I0Z7U9OV
│ │ ├─┬ express@2.5.11
│ │ │ ├─┬ connect@1.9.2
│ │ │ │ └── formidable@1.0.17
│ │ │ ├── mime@1.2.4
│ │ │ ├── mkdirp@0.3.0
│ │ │ └── qs@0.4.2
│ │ ├─┬ nopt@3.0.4
│ │ │ └── abbrev@1.0.7
│ │ └── underscore@1.7.0
│ ├─┬ chokidar@1.2.0
│ │ ├── async-each@0.1.6
│ │ ├─┬ fsevents@1.0.1
│ │ │ └─┬ node-pre-gyp@0.6.11
│ │ │ ├─┬ mkdirp@0.5.1
│ │ │ │ └── minimist@0.0.8
│ │ │ ├─┬ nopt@3.0.4
│ │ │ │ └── abbrev@1.0.7
│ │ │ ├─┬ npmlog@1.2.1
│ │ │ │ ├── ansi@0.3.0
│ │ │ │ ├─┬ are-we-there-yet@1.0.4
│ │ │ │ │ ├── delegates@0.1.0
│ │ │ │ │ └─┬ readable-stream@1.1.13
│ │ │ │ │ ├── core-util-is@1.0.1
│ │ │ │ │ ├── inherits@2.0.1
│ │ │ │ │ ├── isarray@0.0.1
│ │ │ │ │ └── string_decoder@0.10.31
│ │ │ │ └─┬ gauge@1.2.2
│ │ │ │ ├── has-unicode@1.0.0
│ │ │ │ ├─┬ lodash.pad@3.1.1
│ │ │ │ │ ├── lodash._basetostring@3.0.1
│ │ │ │ │ └─┬ lodash._createpadding@3.6.1
│ │ │ │ │ └── lodash.repeat@3.0.1
│ │ │ │ ├─┬ lodash.padleft@3.1.1
│ │ │ │ │ ├── lodash._basetostring@3.0.1
│ │ │ │ │ └─┬ lodash._createpadding@3.6.1
│ │ │ │ │ └── lodash.repeat@3.0.1
│ │ │ │ └─┬ lodash.padright@3.1.1
│ │ │ │ ├── lodash._basetostring@3.0.1
│ │ │ │ └─┬ lodash._createpadding@3.6.1
│ │ │ │ └── lodash.repeat@3.0.1
│ │ │ ├─┬ rc@1.1.1
│ │ │ │ ├── deep-extend@0.2.11
│ │ │ │ ├── ini@1.3.4
│ │ │ │ ├── minimist@1.2.0
│ │ │ │ └── strip-json-comments@0.1.3
│ │ │ ├─┬ request@2.63.0
│ │ │ │ ├── aws-sign2@0.5.0
│ │ │ │ ├─┬ bl@1.0.0
│ │ │ │ │ └─┬ readable-stream@2.0.2
│ │ │ │ │ ├── core-util-is@1.0.1
│ │ │ │ │ ├── inherits@2.0.1
│ │ │ │ │ ├── isarray@0.0.1
│ │ │ │ │ ├── process-nextick-args@1.0.3
│ │ │ │ │ ├── string_decoder@0.10.31
│ │ │ │ │ └── util-deprecate@1.0.1
│ │ │ │ ├── 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-rc3
│ │ │ │ │ └── async@1.4.2
│ │ │ │ ├─┬ har-validator@1.8.0
│ │ │ │ │ ├─┬ chalk@1.1.1
│ │ │ │ │ │ ├── ansi-styles@2.1.0
│ │ │ │ │ │ ├── escape-string-regexp@1.0.3
│ │ │ │ │ │ ├─┬ has-ansi@2.0.0
│ │ │ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ │ │ ├─┬ strip-ansi@3.0.0
│ │ │ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ │ │ └── supports-color@2.0.0
│ │ │ │ │ ├─┬ commander@2.8.1
│ │ │ │ │ │ └── graceful-readlink@1.0.1
│ │ │ │ │ └─┬ is-my-json-valid@2.12.2
│ │ │ │ │ ├── generate-function@2.0.0
│ │ │ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ │ │ └── is-property@1.0.2
│ │ │ │ │ ├── jsonpointer@2.0.0
│ │ │ │ │ └── xtend@4.0.0
│ │ │ │ ├─┬ hawk@3.1.0
│ │ │ │ │ ├── boom@2.9.0
│ │ │ │ │ ├── cryptiles@2.0.5
│ │ │ │ │ ├── hoek@2.16.3
│ │ │ │ │ └── sntp@1.0.9
│ │ │ │ ├─┬ http-signature@0.11.0
│ │ │ │ │ ├── asn1@0.1.11
│ │ │ │ │ ├── assert-plus@0.1.5
│ │ │ │ │ └── ctype@0.5.3
│ │ │ │ ├── isstream@0.1.2
│ │ │ │ ├── json-stringify-safe@5.0.1
│ │ │ │ ├─┬ mime-types@2.1.7
│ │ │ │ │ └── mime-db@1.19.0
│ │ │ │ ├── node-uuid@1.4.3
│ │ │ │ ├── oauth-sign@0.8.0
│ │ │ │ ├── qs@5.1.0
│ │ │ │ ├── stringstream@0.0.4
│ │ │ │ └── tunnel-agent@0.4.1
│ │ │ ├─┬ rimraf@2.4.3
│ │ │ │ └─┬ glob@5.0.14
│ │ │ │ ├─┬ inflight@1.0.4
│ │ │ │ │ └── wrappy@1.0.1
│ │ │ │ ├── inherits@2.0.1
│ │ │ │ ├─┬ minimatch@2.0.10
│ │ │ │ │ └─┬ brace-expansion@1.1.0
│ │ │ │ │ ├── balanced-match@0.2.0
│ │ │ │ │ └── concat-map@0.0.1
│ │ │ │ ├─┬ once@1.3.2
│ │ │ │ │ └── wrappy@1.0.1
│ │ │ │ └── path-is-absolute@1.0.0
│ │ │ ├── semver@5.0.3
│ │ │ ├─┬ tar@2.2.1
│ │ │ │ ├── block-stream@0.0.8
│ │ │ │ ├─┬ fstream@1.0.8
│ │ │ │ │ └── graceful-fs@4.1.2
│ │ │ │ └── inherits@2.0.1
│ │ │ └─┬ tar-pack@2.0.0
│ │ │ ├── debug@0.7.4
│ │ │ ├─┬ fstream@0.1.31
│ │ │ │ ├── graceful-fs@3.0.8
│ │ │ │ └── inherits@2.0.1
│ │ │ ├─┬ fstream-ignore@0.0.7
│ │ │ │ ├── inherits@2.0.1
│ │ │ │ └─┬ minimatch@0.2.14
│ │ │ │ ├── lru-cache@2.7.0
│ │ │ │ └── sigmund@1.0.1
│ │ │ ├── graceful-fs@1.2.3
│ │ │ ├─┬ readable-stream@1.0.33
│ │ │ │ ├── core-util-is@1.0.1
│ │ │ │ ├── inherits@2.0.1
│ │ │ │ ├── isarray@0.0.1
│ │ │ │ └── string_decoder@0.10.31
│ │ │ └─┬ tar@0.1.20
│ │ │ ├── block-stream@0.0.8
│ │ │ └── inherits@2.0.1
│ │ ├─┬ glob-parent@2.0.0
│ │ │ └── is-glob@2.0.1
│ │ ├─┬ is-binary-path@1.0.1
│ │ │ └── binary-extensions@1.3.1
│ │ ├─┬ is-glob@2.0.1
│ │ │ └── is-extglob@1.0.0
│ │ ├─┬ lodash.flatten@3.0.2
│ │ │ ├── lodash._baseflatten@3.1.4
│ │ │ └── lodash._isiterateecall@3.0.9
│ │ ├── path-is-absolute@1.0.0
│ │ └─┬ readdirp@2.0.0
│ │ └── graceful-fs@4.1.2
│ ├─┬ connect@3.4.0
│ │ ├─┬ debug@2.2.0
│ │ │ └── ms@0.7.1
│ │ ├─┬ finalhandler@0.4.0
│ │ │ ├─┬ on-finished@2.3.0
│ │ │ │ └── ee-first@1.1.1
│ │ │ └── unpipe@1.0.0
│ │ ├── parseurl@1.3.0
│ │ └── utils-merge@1.0.0
│ ├── dev-ip@1.0.1
│ ├─┬ easy-extender@2.3.1
│ │ └── lodash@2.4.2
│ ├─┬ eazy-logger@2.1.2
│ │ ├─┬ opt-merger@1.1.0
│ │ │ └── lodash@2.4.2
│ │ └─┬ tfunk@3.0.1
│ │ └─┬ chalk@0.5.1
│ │ ├── ansi-styles@1.1.0
│ │ ├─┬ has-ansi@0.1.0
│ │ │ └── ansi-regex@0.2.1
│ │ ├── strip-ansi@0.3.0
│ │ └── supports-color@0.2.0
│ ├── emitter-steward@1.0.0
│ ├─┬ foxy@11.1.3
│ │ ├── cookie@0.1.5
│ │ ├─┬ http-proxy@1.11.2
│ │ │ ├── eventemitter3@1.1.1
│ │ │ └── requires-port@0.0.1
│ │ ├─┬ lodash.merge@3.3.2
│ │ │ ├── lodash._arraycopy@3.0.0
│ │ │ ├── lodash._arrayeach@3.0.0
│ │ │ ├─┬ lodash._createassigner@3.1.1
│ │ │ │ └── lodash._bindcallback@3.0.1
│ │ │ ├── lodash._getnative@3.9.1
│ │ │ ├── lodash.isarguments@3.0.4
│ │ │ ├── lodash.isarray@3.0.4
│ │ │ ├─┬ lodash.isplainobject@3.2.0
│ │ │ │ └── lodash._basefor@3.0.2
│ │ │ ├── lodash.istypedarray@3.0.2
│ │ │ ├── lodash.keys@3.1.2
│ │ │ ├── lodash.keysin@3.0.8
│ │ │ └── lodash.toplainobject@3.0.0
│ │ └── resp-modifier@4.0.4
│ ├── immutable@3.7.5
│ ├─┬ localtunnel@1.7.0
│ │ ├── debug@0.7.4
│ │ ├── openurl@1.1.0
│ │ ├── request@2.11.4
│ │ └─┬ yargs@3.15.0
│ │ ├── camelcase@1.2.1
│ │ ├─┬ cliui@2.1.0
│ │ │ ├─┬ center-align@0.1.1
│ │ │ │ └─┬ align-text@0.1.3
│ │ │ │ └─┬ kind-of@2.0.1
│ │ │ │ └── is-buffer@1.1.0
│ │ │ └── right-align@0.1.3
│ │ ├── decamelize@1.0.0
│ │ └── window-size@0.1.2
│ ├── longest@1.0.1
│ ├─┬ meow@3.4.1
│ │ ├─┬ camelcase-keys@1.0.0
│ │ │ └── map-obj@1.0.1
│ │ ├── loud-rejection@1.0.0
│ │ ├── object-assign@4.0.1
│ │ ├─┬ read-pkg-up@1.0.1
│ │ │ ├─┬ find-up@1.0.0
│ │ │ │ ├── path-exists@2.0.0
│ │ │ │ └─┬ pinkie-promise@1.0.0
│ │ │ │ └── pinkie@1.0.0
│ │ │ └─┬ read-pkg@1.1.0
│ │ │ ├─┬ load-json-file@1.0.1
│ │ │ │ ├── graceful-fs@4.1.2
│ │ │ │ ├─┬ parse-json@2.2.0
│ │ │ │ │ └── error-ex@1.2.0
│ │ │ │ ├── pify@2.2.0
│ │ │ │ └── strip-bom@2.0.0
│ │ │ ├─┬ normalize-package-data@2.3.4
│ │ │ │ ├── hosted-git-info@2.1.4
│ │ │ │ ├─┬ is-builtin-module@1.0.0
│ │ │ │ │ └── builtin-modules@1.1.0
│ │ │ │ └─┬ validate-npm-package-license@3.0.1
│ │ │ │ ├─┬ spdx-correct@1.0.1
│ │ │ │ │ └── spdx-license-ids@1.0.2
│ │ │ │ └─┬ spdx-expression-parse@1.0.0
│ │ │ │ └── spdx-exceptions@1.0.3
│ │ │ └─┬ path-type@1.0.0
│ │ │ └── graceful-fs@4.1.2
│ │ ├─┬ redent@1.0.0
│ │ │ ├─┬ indent-string@2.1.0
│ │ │ │ └─┬ repeating@2.0.0
│ │ │ │ └── is-finite@1.0.1
│ │ │ └── strip-indent@1.0.1
│ │ └── trim-newlines@1.0.0
│ ├── opn@3.0.2
│ ├─┬ pad-left@2.0.0
│ │ └── repeat-string@1.5.2
│ ├─┬ portscanner@1.0.0
│ │ └── async@0.1.15
│ ├─┬ query-string@2.4.2
│ │ └── strict-uri-encode@1.0.2
│ ├── resp-modifier@5.0.2
│ ├─┬ serve-index@1.7.2
│ │ ├─┬ accepts@1.2.13
│ │ │ └── negotiator@0.5.3
│ │ ├── batch@0.5.2
│ │ ├── escape-html@1.0.2
│ │ ├─┬ http-errors@1.3.1
│ │ │ └── statuses@1.2.1
│ │ └─┬ mime-types@2.1.7
│ │ └── mime-db@1.19.0
│ ├─┬ serve-static@1.10.0
│ │ └─┬ send@0.13.0
│ │ ├── depd@1.0.1
│ │ ├── destroy@1.0.3
│ │ ├── mime@1.3.4
│ │ └── range-parser@1.0.2
│ ├─┬ socket.io@1.3.7
│ │ ├─┬ debug@2.1.0
│ │ │ └── ms@0.6.2
│ │ ├─┬ engine.io@1.5.4
│ │ │ ├── base64id@0.1.0
│ │ │ ├─┬ debug@1.0.3
│ │ │ │ └── ms@0.6.2
│ │ │ ├─┬ engine.io-parser@1.2.2
│ │ │ │ ├── after@0.8.1
│ │ │ │ ├── arraybuffer.slice@0.0.6
│ │ │ │ ├── base64-arraybuffer@0.1.2
│ │ │ │ ├── blob@0.0.4
│ │ │ │ └── utf8@2.1.0
│ │ │ └─┬ ws@0.8.0
│ │ │ ├─┬ bufferutil@1.2.1
│ │ │ │ └── bindings@1.2.1
│ │ │ ├── options@0.0.6
│ │ │ ├── ultron@1.0.2
│ │ │ └── utf-8-validate@1.2.1
│ │ ├── has-binary-data@0.1.3
│ │ ├─┬ socket.io-adapter@0.3.1
│ │ │ ├─┬ debug@1.0.2
│ │ │ │ └── ms@0.6.2
│ │ │ ├── object-keys@1.0.1
│ │ │ └─┬ socket.io-parser@2.2.2
│ │ │ └── debug@0.7.4
│ │ ├─┬ socket.io-client@1.3.7
│ │ │ ├── backo2@1.0.2
│ │ │ ├── component-bind@1.0.0
│ │ │ ├── component-emitter@1.1.2
│ │ │ ├── debug@0.7.4
│ │ │ ├─┬ engine.io-client@1.5.4
│ │ │ │ ├── component-inherit@0.0.3
│ │ │ │ ├─┬ debug@1.0.4
│ │ │ │ │ └── ms@0.6.2
│ │ │ │ ├─┬ has-cors@1.0.3
│ │ │ │ │ └── global@2.0.1
│ │ │ │ ├── parsejson@0.0.1
│ │ │ │ ├── parseqs@0.0.2
│ │ │ │ ├── parseuri@0.0.4
│ │ │ │ └── xmlhttprequest@1.5.0
│ │ │ ├── has-binary@0.1.6
│ │ │ ├── indexof@0.0.1
│ │ │ ├── object-component@0.0.3
│ │ │ ├─┬ parseuri@0.0.2
│ │ │ │ └─┬ better-assert@1.0.2
│ │ │ │ └── callsite@1.0.0
│ │ │ └── to-array@0.1.3
│ │ └─┬ socket.io-parser@2.2.4
│ │ ├── benchmark@1.0.0
│ │ ├── debug@0.7.4
│ │ └── json3@3.2.6
│ ├── ua-parser-js@0.7.9
│ └── ucfirst@1.0.0
├─┬ del@1.2.1
│ ├─┬ each-async@1.1.1
│ │ ├── onetime@1.0.0
│ │ └── set-immediate-shim@1.0.1
│ ├─┬ globby@2.1.0
│ │ ├── array-union@1.0.1
│ │ ├── async@1.4.2
│ │ └── glob@5.0.15
│ ├── is-path-cwd@1.0.0
│ ├─┬ is-path-in-cwd@1.0.0
│ │ └─┬ is-path-inside@1.0.0
│ │ └── path-is-inside@1.0.1
│ ├── object-assign@3.0.0
│ └── rimraf@2.4.3
├─┬ gulp@3.9.0
│ ├── archy@1.0.0
│ ├─┬ chalk@1.1.1
│ │ ├── ansi-styles@2.1.0
│ │ ├── escape-string-regexp@1.0.3
│ │ ├─┬ has-ansi@2.0.0
│ │ │ └── ansi-regex@2.0.0
│ │ ├── strip-ansi@3.0.0
│ │ └── supports-color@2.0.0
│ ├── deprecated@0.0.1
│ ├─┬ gulp-util@3.0.6
│ │ ├── array-differ@1.0.0
│ │ ├── array-uniq@1.0.2
│ │ ├── beeper@1.1.0
│ │ ├── dateformat@1.0.11
│ │ ├── lodash._reescape@3.0.0
│ │ ├── lodash._reevaluate@3.0.0
│ │ ├── lodash._reinterpolate@3.0.0
│ │ ├─┬ lodash.template@3.6.2
│ │ │ ├── lodash._basecopy@3.0.1
│ │ │ ├── lodash._basetostring@3.0.1
│ │ │ ├── lodash._basevalues@3.0.0
│ │ │ ├── lodash.escape@3.0.0
│ │ │ ├── lodash.restparam@3.6.1
│ │ │ └── lodash.templatesettings@3.1.0
│ │ ├── multipipe@0.1.2
│ │ ├── replace-ext@0.0.1
│ │ ├── through2@2.0.0
│ │ └─┬ vinyl@0.5.3
│ │ └── clone@1.0.2
│ ├── interpret@0.6.6
│ ├─┬ liftoff@2.2.0
│ │ ├── findup-sync@0.3.0
│ │ ├── flagged-respawn@0.3.1
│ │ ├── rechoir@0.6.2
│ │ └── resolve@1.1.6
│ ├─┬ orchestrator@0.3.7
│ │ ├── end-of-stream@0.1.5
│ │ ├── sequencify@0.0.7
│ │ └── stream-consume@0.1.0
│ ├── pretty-hrtime@1.0.1
│ ├── semver@4.3.6
│ ├─┬ tildify@1.1.2
│ │ └── os-homedir@1.0.1
│ ├─┬ v8flags@2.0.10
│ │ └── user-home@1.1.1
│ └─┬ vinyl-fs@0.3.14
│ ├─┬ defaults@1.0.3
│ │ └── clone@1.0.2
│ ├─┬ glob-stream@3.1.18
│ │ ├── glob@4.5.3
│ │ ├─┬ glob2base@0.0.12
│ │ │ └── find-index@0.1.1
│ │ ├── ordered-read-streams@0.1.0
│ │ └── unique-stream@1.0.0
│ ├── glob-watcher@0.0.6
│ ├── graceful-fs@3.0.8
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ ├─┬ strip-bom@1.0.0
│ │ └── first-chunk-stream@1.0.0
│ └─┬ vinyl@0.4.6
│ └── clone@0.2.0
├─┬ gulp-autoprefixer@2.3.1
│ ├─┬ autoprefixer-core@5.2.1
│ │ ├── browserslist@0.4.0
│ │ ├── caniuse-db@1.0.30000334
│ │ └── num2fraction@1.2.2
│ ├── object-assign@2.1.1
│ ├─┬ postcss@4.1.16
│ │ ├── es6-promise@2.3.0
│ │ ├── js-base64@2.1.9
│ │ └─┬ source-map@0.4.4
│ │ └── amdefine@1.0.0
│ ├─┬ through2@0.6.5
│ │ ├── readable-stream@1.0.33
│ │ └── xtend@4.0.0
│ └─┬ vinyl-sourcemaps-apply@0.1.4
│ └── source-map@0.1.43
├─┬ gulp-changed@1.3.0
│ └── through2@2.0.0
├─┬ gulp-concat@2.6.0
│ └─┬ concat-with-sourcemaps@1.0.4
│ └── source-map@0.5.1
├── gulp-flatten@0.0.4
├─┬ gulp-if@1.2.5
│ ├─┬ gulp-match@0.2.1
│ │ └─┬ minimatch@1.0.0
│ │ ├── lru-cache@2.7.0
│ │ └── sigmund@1.0.1
│ └─┬ ternary-stream@1.2.3
│ ├─┬ duplexer2@0.0.2
│ │ └── readable-stream@1.1.13
│ └── fork-stream@0.0.4
├─┬ gulp-imagemin@2.3.0
│ ├─┬ imagemin@3.2.0
│ │ ├─┬ buffer-to-vinyl@1.0.1
│ │ │ ├─┬ file-type@2.12.0
│ │ │ │ └── read-chunk@1.0.1
│ │ │ ├── uuid@2.0.1
│ │ │ └─┬ vinyl@0.5.3
│ │ │ └── clone@1.0.2
│ │ ├─┬ concat-stream@1.5.0
│ │ │ └── typedarray@0.0.6
│ │ ├── get-stdin@4.0.1
│ │ ├─┬ imagemin-gifsicle@4.2.0
│ │ │ ├── gifsicle@3.0.1
│ │ │ └── is-gif@1.0.0
│ │ ├─┬ imagemin-jpegtran@4.3.0
│ │ │ ├── is-jpg@1.0.0
│ │ │ ├── jpegtran-bin@3.0.4
│ │ │ └── through2@2.0.0
│ │ ├─┬ imagemin-optipng@4.3.0
│ │ │ └── optipng-bin@3.0.2
│ │ ├─┬ imagemin-svgo@4.1.2
│ │ │ ├── is-svg@1.1.1
│ │ │ └─┬ svgo@0.5.6
│ │ │ ├─┬ coa@1.0.1
│ │ │ │ └── q@1.4.1
│ │ │ ├── colors@1.1.2
│ │ │ ├─┬ js-yaml@3.3.1
│ │ │ │ ├─┬ argparse@1.0.2
│ │ │ │ │ └── sprintf-js@1.0.3
│ │ │ │ └── esprima@2.2.0
│ │ │ ├── sax@1.1.3
│ │ │ └── whet.extend@0.9.9
│ │ ├── optional@0.1.3
│ │ └─┬ stream-combiner2@1.0.2
│ │ └─┬ through2@0.5.1
│ │ ├── readable-stream@1.0.33
│ │ └── xtend@3.0.0
│ ├── plur@1.0.0
│ ├─┬ pretty-bytes@2.0.1
│ │ └── number-is-nan@1.0.0
│ └─┬ through2-concurrent@1.1.0
│ └── through2@2.0.0
├─┬ gulp-jshint@1.11.2
│ ├─┬ jshint@2.8.0
│ │ ├─┬ cli@0.6.6
│ │ │ └─┬ glob@3.2.11
│ │ │ └── minimatch@0.3.0
│ │ ├─┬ console-browserify@1.1.0
│ │ │ └── date-now@0.1.4
│ │ ├── exit@0.1.2
│ │ ├─┬ htmlparser2@3.8.3
│ │ │ ├── domelementtype@1.3.0
│ │ │ ├── domhandler@2.3.0
│ │ │ ├─┬ domutils@1.5.1
│ │ │ │ └─┬ dom-serializer@0.1.0
│ │ │ │ ├── domelementtype@1.1.3
│ │ │ │ └── entities@1.1.1
│ │ │ ├── entities@1.0.0
│ │ │ └── readable-stream@1.1.13
│ │ ├── lodash@3.7.0
│ │ └── shelljs@0.3.0
│ └─┬ rcloader@0.1.2
│ ├── lodash@2.4.2
│ └─┬ rcfinder@0.1.8
│ └── lodash@2.4.2
├─┬ gulp-less@3.0.3
│ ├─┬ accord@0.15.2
│ │ ├── convert-source-map@0.4.1
│ │ ├─┬ fobject@0.0.3
│ │ │ └── semver@4.3.6
│ │ ├── glob@4.5.3
│ │ ├── indx@0.2.3
│ │ └── when@3.7.3
│ ├─┬ less@2.5.3
│ │ ├─┬ errno@0.1.4
│ │ │ └── prr@0.0.0
│ │ ├── image-size@0.3.5
│ │ ├── mime@1.3.4
│ │ ├─┬ promise@6.1.0
│ │ │ └── asap@1.0.0
│ │ └─┬ request@2.64.0
│ │ ├── aws-sign2@0.5.0
│ │ ├── bl@1.0.0
│ │ ├── 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-rc3
│ │ ├─┬ har-validator@1.8.0
│ │ │ ├── bluebird@2.10.2
│ │ │ └─┬ is-my-json-valid@2.12.2
│ │ │ ├── generate-function@2.0.0
│ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ └── is-property@1.0.2
│ │ │ └── jsonpointer@2.0.0
│ │ ├─┬ hawk@3.1.0
│ │ │ ├── boom@2.9.0
│ │ │ ├── cryptiles@2.0.5
│ │ │ ├── hoek@2.16.3
│ │ │ └── sntp@1.0.9
│ │ ├─┬ http-signature@0.11.0
│ │ │ ├── asn1@0.1.11
│ │ │ ├── assert-plus@0.1.5
│ │ │ └── ctype@0.5.3
│ │ ├── isstream@0.1.2
│ │ ├── json-stringify-safe@5.0.1
│ │ ├── node-uuid@1.4.3
│ │ ├── oauth-sign@0.8.0
│ │ ├── qs@5.1.0
│ │ ├── stringstream@0.0.4
│ │ ├── tough-cookie@2.1.0
│ │ └── tunnel-agent@0.4.1
│ └── object-assign@2.1.1
├─┬ gulp-minify-css@1.2.1
│ ├─┬ clean-css@3.4.5
│ │ └─┬ commander@2.8.1
│ │ └── graceful-readlink@1.0.1
│ ├── object-assign@4.0.1
│ ├─┬ readable-stream@2.0.2
│ │ ├── core-util-is@1.0.1
│ │ ├── inherits@2.0.1
│ │ ├── isarray@0.0.1
│ │ ├── process-nextick-args@1.0.3
│ │ ├── string_decoder@0.10.31
│ │ └── util-deprecate@1.0.1
│ └─┬ vinyl-bufferstream@1.0.1
│ └─┬ bufferstreams@1.0.1
│ └── readable-stream@1.1.13
├── gulp-plumber@1.0.1
├── gulp-rename@1.2.2
├─┬ gulp-rev@3.0.1
│ ├── object-assign@2.1.1
│ └─┬ vinyl-file@1.2.1
│ ├── graceful-fs@4.1.2
│ ├── strip-bom@2.0.0
│ ├─┬ strip-bom-stream@1.0.0
│ │ └── strip-bom@2.0.0
│ └─┬ vinyl@0.5.3
│ └── clone@1.0.2
├─┬ gulp-sass@2.0.4
│ ├─┬ node-sass@3.3.3
│ │ ├── async-foreach@0.1.3
│ │ ├─┬ cross-spawn@2.0.0
│ │ │ ├── cross-spawn-async@2.0.0
│ │ │ └─┬ spawn-sync@1.0.13
│ │ │ └── os-shim@0.1.3
│ │ ├─┬ gaze@0.5.2
│ │ │ └─┬ globule@0.1.0
│ │ │ ├─┬ glob@3.1.21
│ │ │ │ ├── graceful-fs@1.2.3
│ │ │ │ └── inherits@1.0.2
│ │ │ ├── lodash@1.0.2
│ │ │ └── minimatch@0.2.14
│ │ ├── nan@2.0.9
│ │ ├─┬ node-gyp@3.0.3
│ │ │ ├─┬ fstream@1.0.8
│ │ │ │ └── graceful-fs@4.1.2
│ │ │ ├─┬ glob@4.5.3
│ │ │ │ └── minimatch@2.0.10
│ │ │ ├── graceful-fs@4.1.2
│ │ │ ├── minimatch@1.0.0
│ │ │ ├─┬ npmlog@1.2.1
│ │ │ │ ├── ansi@0.3.0
│ │ │ │ ├─┬ are-we-there-yet@1.0.4
│ │ │ │ │ ├── delegates@0.1.0
│ │ │ │ │ └── readable-stream@1.1.13
│ │ │ │ └─┬ gauge@1.2.2
│ │ │ │ ├── has-unicode@1.0.0
│ │ │ │ ├─┬ lodash.pad@3.1.1
│ │ │ │ │ └─┬ lodash._createpadding@3.6.1
│ │ │ │ │ └── lodash.repeat@3.0.1
│ │ │ │ ├── lodash.padleft@3.1.1
│ │ │ │ └── lodash.padright@3.1.1
│ │ │ ├── osenv@0.1.3
│ │ │ ├─┬ path-array@1.0.0
│ │ │ │ └── array-index@0.1.1
│ │ │ ├── semver@5.0.3
│ │ │ ├─┬ tar@1.0.3
│ │ │ │ └── block-stream@0.0.8
│ │ │ └─┬ which@1.1.2
│ │ │ └─┬ is-absolute@0.1.7
│ │ │ └── is-relative@0.1.3
│ │ ├─┬ npmconf@2.1.2
│ │ │ ├─┬ config-chain@1.1.9
│ │ │ │ └── proto-list@1.2.4
│ │ │ ├── ini@1.3.4
│ │ │ ├── semver@4.3.6
│ │ │ └── uid-number@0.0.5
│ │ ├─┬ request@2.64.0
│ │ │ ├── extend@3.0.0
│ │ │ └── qs@5.1.0
│ │ └── sass-graph@2.0.1
│ └── object-assign@2.1.1
├─┬ gulp-sourcemaps@1.6.0
│ ├── convert-source-map@1.1.1
│ ├── graceful-fs@4.1.2
│ ├─┬ strip-bom@2.0.0
│ │ └── is-utf8@0.2.0
│ ├── through2@2.0.0
│ └─┬ vinyl@1.0.0
│ ├── clone@1.0.2
│ └── clone-stats@0.0.1
├─┬ gulp-uglify@1.4.1
│ ├── deap@1.0.0
│ ├── fancy-log@1.1.0
│ ├── isobject@2.0.0
│ ├── through2@2.0.0
│ ├─┬ uglify-js@2.4.24
│ │ ├── async@0.2.10
│ │ ├── source-map@0.1.34
│ │ ├── uglify-to-browserify@1.0.2
│ │ └─┬ yargs@3.5.4
│ │ ├── window-size@0.1.0
│ │ └── wordwrap@0.0.2
│ └── uglify-save-license@0.4.1
├─┬ imagemin-pngcrush@4.1.0
│ ├─┬ exec-buffer@2.0.1
│ │ └─┬ tempfile@1.1.1
│ │ └── os-tmpdir@1.0.1
│ ├── is-png@1.0.0
│ └─┬ pngcrush-bin@3.0.0
│ ├─┬ bin-build@2.1.2
│ │ ├── archive-type@2.1.0
│ │ ├─┬ decompress@2.3.0
│ │ │ ├─┬ decompress-tar@3.1.0
│ │ │ │ ├── is-tar@1.0.0
│ │ │ │ ├── object-assign@2.1.1
│ │ │ │ ├─┬ strip-dirs@1.1.1
│ │ │ │ │ ├── is-natural-number@2.0.0
│ │ │ │ │ └── sum-up@1.0.2
│ │ │ │ └── tar-stream@1.2.1
│ │ │ ├─┬ decompress-tarbz2@3.1.0
│ │ │ │ ├── is-bzip2@1.0.0
│ │ │ │ ├── object-assign@2.1.1
│ │ │ │ └── seek-bzip@1.0.5
│ │ │ ├─┬ decompress-targz@3.1.0
│ │ │ │ ├── is-gzip@1.0.0
│ │ │ │ └── object-assign@2.1.1
│ │ │ ├─┬ decompress-unzip@3.3.0
│ │ │ │ ├── is-zip@1.0.0
│ │ │ │ ├── stat-mode@0.2.1
│ │ │ │ ├── through2@2.0.0
│ │ │ │ ├─┬ vinyl@0.5.3
│ │ │ │ │ └── clone@1.0.2
│ │ │ │ └─┬ yauzl@2.3.1
│ │ │ │ ├── fd-slicer@1.0.1
│ │ │ │ └── pend@1.2.0
│ │ │ └─┬ vinyl-assign@1.2.1
│ │ │ └── object-assign@4.0.1
│ │ ├─┬ download@4.2.1
│ │ │ ├─┬ caw@1.1.0
│ │ │ │ ├─┬ get-proxy@1.0.1
│ │ │ │ │ └─┬ rc@0.5.5
│ │ │ │ │ ├── deep-extend@0.2.11
│ │ │ │ │ ├── minimist@0.0.10
│ │ │ │ │ └── strip-json-comments@0.1.3
│ │ │ │ └── is-obj@1.0.0
│ │ │ ├─┬ filenamify@1.2.0
│ │ │ │ ├── filename-reserved-regex@1.0.0
│ │ │ │ ├── strip-outer@1.0.0
│ │ │ │ └── trim-repeated@1.0.0
│ │ │ ├─┬ got@4.2.0
│ │ │ │ ├─┬ create-error-class@2.0.1
│ │ │ │ │ └── capture-stack-trace@1.0.0
│ │ │ │ ├── is-plain-obj@1.0.0
│ │ │ │ ├── is-redirect@1.0.0
│ │ │ │ ├── is-stream@1.0.1
│ │ │ │ ├── lowercase-keys@1.0.0
│ │ │ │ ├── node-status-codes@1.0.0
│ │ │ │ ├── prepend-http@1.0.3
│ │ │ │ ├── timed-out@2.0.0
│ │ │ │ └── unzip-response@1.0.0
│ │ │ ├─┬ gulp-decompress@1.1.0
│ │ │ │ ├── archive-type@3.0.1
│ │ │ │ └── through2@2.0.0
│ │ │ ├── is-url@1.2.1
│ │ │ ├── object-assign@4.0.1
│ │ │ ├── read-all-stream@3.0.1
│ │ │ ├─┬ vinyl@0.5.3
│ │ │ │ └── clone@1.0.2
│ │ │ └─┬ ware@1.3.0
│ │ │ └─┬ wrap-fn@0.1.4
│ │ │ └── co@3.1.0
│ │ ├─┬ exec-series@1.0.2
│ │ │ └── async-each-series@1.1.0
│ │ └─┬ url-regex@2.1.3
│ │ └── ip-regex@1.0.3
│ ├─┬ bin-wrapper@3.0.2
│ │ ├─┬ bin-check@2.0.0
│ │ │ └── executable@1.1.0
│ │ ├─┬ bin-version-check@2.1.0
│ │ │ ├─┬ bin-version@1.0.4
│ │ │ │ └─┬ find-versions@1.1.3
│ │ │ │ └── semver-regex@1.0.0
│ │ │ ├── semver@4.3.6
│ │ │ └─┬ semver-truncate@1.0.0
│ │ │ └── semver@4.3.6
│ │ ├── lazy-req@1.1.0
│ │ └── os-filter-obj@1.0.3
│ └─┬ logalot@2.1.0
│ ├── figures@1.4.0
│ └─┬ squeak@1.2.0
│ ├─┬ chalk@0.5.1
│ │ ├── ansi-styles@1.1.0
│ │ ├─┬ has-ansi@0.1.0
│ │ │ └── ansi-regex@0.2.1
│ │ ├── strip-ansi@0.3.0
│ │ └── supports-color@0.2.0
│ └─┬ lpad-align@1.1.0
│ └── lpad@2.0.1
├─┬ jshint-stylish@1.0.2
│ ├── log-symbols@1.0.2
│ ├── string-length@1.0.1
│ └── text-table@0.2.0
├─┬ lazypipe@0.2.4
│ └─┬ stream-combiner@0.2.2
│ ├── duplexer@0.1.1
│ └── through@2.3.8
├── merge-stream@0.1.8
├── minimist@1.2.0
├── run-sequence@1.1.4
├── traverse@0.6.6
└─┬ wiredep@2.2.2
├─┬ bower-config@0.5.2
│ ├── graceful-fs@2.0.3
│ ├── mout@0.9.1
│ ├─┬ optimist@0.6.1
│ │ └── minimist@0.0.10
│ └── osenv@0.0.3
├─┬ chalk@0.5.1
│ ├── ansi-styles@1.1.0
│ ├─┬ has-ansi@0.1.0
│ │ └── ansi-regex@0.2.1
│ ├── strip-ansi@0.3.0
│ └── supports-color@0.2.0
├─┬ glob@4.5.3
│ ├─┬ inflight@1.0.4
│ │ └── wrappy@1.0.1
│ └── once@1.3.2
├── lodash@2.4.2
└── propprop@0.3.0

Before this there were 29 folders all with a node_modules folder and their dependencies which looked like the above file structure. Maybe this is the new version of node and npm.

npm v. 3.3.5
node v. 4.1.1
sage v. 8.1
gulp v. 3.9.0 for CLI and local version. I may have installed gulp in the project but I have no way to know because I have done so many things working on this issue today…

Here are my config settings. I have a feeling its in here somewhere:

; cli configs
long = true
user-agent = “npm/3.3.5 node/v4.1.1 darwin x64”

; userconfig /Users/abc/.npmrc
prefix = “/usr/local”

; default values
access = null
also = null
always-auth = false
bin-links = true
browser = null
ca = null
cache = "/Users/abc/.npm"
cache-lock-retries = 10
cache-lock-stale = 60000
cache-lock-wait = 10000
cache-max = null
cache-min = 10
cafile = undefined
cert = null
color = true
depth = null
description = true
dev = false
dry-run = false
editor = "vi"
engine-strict = false
fetch-retries = 2
fetch-retry-factor = 10
fetch-retry-maxtimeout = 60000
fetch-retry-mintimeout = 10000
force = false
git = "git"
git-tag-version = true
global = false
globalconfig = "/usr/local/etc/npmrc"
globalignorefile = "/usr/local/etc/npmignore"
group = 20
heading = "npm"
https-proxy = null
if-present = false
ignore-scripts = false
init-author-email = ""
init-author-name = ""
init-author-url = ""
init-license = "ISC"
init-module = "/Users/abc/.npm-init.js"
init-version = "1.0.0"
json = false
key = null
link = false
local-address = undefined
loglevel = “warn”
; long = false (overridden)
message = "%s"
node-version = "4.1.1"
npat = false
onload-script = null
only = null
optional = true
parseable = false
prefix = "/usr/local"
production = false
progress = true
proprietary-attribs = true
proxy = null
rebuild-bundle = true
registry = "https://registry.npmjs.org/"
rollback = true
save = false
save-bundle = false
save-dev = false
save-exact = false
save-optional = false
save-prefix = "^"
scope = ""
searchexclude = null
searchopts = ""
searchsort = "name"
shell = "/bin/bash"
shrinkwrap = true
sign-git-tag = false
strict-ssl = true
tag = "latest"
tag-version-prefix = "v"
tmp = "/var/folders/d6/mwy0sr53r0000gn/T"
umask = 18
unicode = true
unsafe-perm = true
usage = false
user = 0
; user-agent = “npm/{npm-version} node/{node-version} {platform} {arch}” (overridden)
userconfig = "/Users/abc/.npmrc"
version = false
versions = false
viewer = “man”

Please don’t run sudo npm install. Really. Please. Don’t do it. If it doesn’t work without it, fix it. Read the sticky post about it. And Google sudo npm install

1 Like

I followed these instructions to stop using SUDO - https://docs.npmjs.com/getting-started/fixing-npm-permissions

I deleted my node_modules folder and did ~npm install and it went through the motions and w/o warnings or errors. I am still getting a flat list of all 125 modules and not the 29 that Sage has out of the box.

New version

This list goes on for 125 directories.

Old version

I just figured it out. I was used to using npm 2.14.X and some how I got a pre-release of 3.3.5 and it uses a flat directory structure. LOL.

1 Like

Nice lol

20 characters