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

language/node: adjustments for npm 5.0.x #2710

Merged
merged 1 commit into from Jun 1, 2017
Merged

language/node: adjustments for npm 5.0.x #2710

merged 1 commit into from Jun 1, 2017

Conversation

DomT4
Copy link
Member

@DomT4 DomT4 commented Jun 1, 2017

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes? Here's an example.
  • Have you successfully run brew tests with your changes locally? (It dies, but for very unrelated reasons as far as I can see.)

Goes with: Homebrew/homebrew-core#14085

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

CC @MikeMcQuaid @ilovezfs @chrmoritz @JCount @dunn and possibly @zkat if you want to keep an eye on this side of the discussion as well.

@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 1, 2017

So were you able to determine whether @chrmoritz is correct that this can cause e.g. .brew_home to end up getting installed?

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

So were you able to determine whether @chrmoritz is correct that this can cause e.g. .brew_home to end up getting installed?

It's not there for me. Perhaps because npm pack is run after we create the npmignore file?

alexjs tree

/usr/local/opt/alexjs
├── INSTALL_RECEIPT.json
├── LICENSE
├── bin
│   └── alex -> ../libexec/bin/alex
├── history.md
├── libexec
│   ├── bin
│   │   └── alex -> ../lib/node_modules/alex/cli.js
│   ├── etc
│   └── lib
│       └── node_modules
│           └── alex
│               ├── LICENSE
│               ├── cli.js
│               ├── filter.js
│               ├── history.md
│               ├── index.js
│               ├── node_modules
│               │   ├── ansi-align
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── node_modules
│               │   │   │   ├── is-fullwidth-code-point
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── license
│               │   │   │   │   ├── package.json
│               │   │   │   │   └── readme.md
│               │   │   │   └── string-width
│               │   │   │       ├── index.js
│               │   │   │       ├── license
│               │   │   │       ├── package.json
│               │   │   │       └── readme.md
│               │   │   └── package.json
│               │   ├── ansi-regex
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── ansi-styles
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── argparse
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── action
│               │   │   │   │   ├── append
│               │   │   │   │   │   └── constant.js
│               │   │   │   │   ├── append.js
│               │   │   │   │   ├── count.js
│               │   │   │   │   ├── help.js
│               │   │   │   │   ├── store
│               │   │   │   │   │   ├── constant.js
│               │   │   │   │   │   ├── false.js
│               │   │   │   │   │   └── true.js
│               │   │   │   │   ├── store.js
│               │   │   │   │   ├── subparsers.js
│               │   │   │   │   └── version.js
│               │   │   │   ├── action.js
│               │   │   │   ├── action_container.js
│               │   │   │   ├── argparse.js
│               │   │   │   ├── argument
│               │   │   │   │   ├── error.js
│               │   │   │   │   ├── exclusive.js
│               │   │   │   │   └── group.js
│               │   │   │   ├── argument_parser.js
│               │   │   │   ├── const.js
│               │   │   │   ├── help
│               │   │   │   │   ├── added_formatters.js
│               │   │   │   │   └── formatter.js
│               │   │   │   ├── namespace.js
│               │   │   │   └── utils.js
│               │   │   └── package.json
│               │   ├── array-find-index
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── array-iterate
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── bail
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── balanced-match
│               │   │   ├── LICENSE.md
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── boxen
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── node_modules
│               │   │   │   ├── camelcase
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── license
│               │   │   │   │   ├── package.json
│               │   │   │   │   └── readme.md
│               │   │   │   ├── is-fullwidth-code-point
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── license
│               │   │   │   │   ├── package.json
│               │   │   │   │   └── readme.md
│               │   │   │   └── string-width
│               │   │   │       ├── index.js
│               │   │   │       ├── license
│               │   │   │       ├── package.json
│               │   │   │       └── readme.md
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── brace-expansion
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── bubble-stream-error
│               │   │   ├── README.md
│               │   │   ├── example.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test.js
│               │   ├── buffer-shims
│               │   │   ├── index.js
│               │   │   ├── license.md
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── builtin-modules
│               │   │   ├── builtin-modules.json
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   ├── readme.md
│               │   │   └── static.js
│               │   ├── camelcase
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── camelcase-keys
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── capture-stack-trace
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── chalk
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── character-entities
│               │   │   ├── LICENSE
│               │   │   ├── index.json
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── character-entities-legacy
│               │   │   ├── LICENSE
│               │   │   ├── index.json
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── character-reference-invalid
│               │   │   ├── LICENSE
│               │   │   ├── index.json
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── cli-boxes
│               │   │   ├── boxes.json
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── code-point-at
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── collapse-white-space
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── concat-map
│               │   │   ├── LICENSE
│               │   │   ├── README.markdown
│               │   │   ├── example
│               │   │   │   └── map.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── map.js
│               │   ├── concat-stream
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── node_modules
│               │   │   │   ├── isarray
│               │   │   │   │   ├── Makefile
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── component.json
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── package.json
│               │   │   │   │   └── test.js
│               │   │   │   ├── readable-stream
│               │   │   │   │   ├── CONTRIBUTING.md
│               │   │   │   │   ├── GOVERNANCE.md
│               │   │   │   │   ├── LICENSE
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── doc
│               │   │   │   │   │   └── wg-meetings
│               │   │   │   │   │       └── 2015-01-30.md
│               │   │   │   │   ├── duplex-browser.js
│               │   │   │   │   ├── duplex.js
│               │   │   │   │   ├── lib
│               │   │   │   │   │   ├── _stream_duplex.js
│               │   │   │   │   │   ├── _stream_passthrough.js
│               │   │   │   │   │   ├── _stream_readable.js
│               │   │   │   │   │   ├── _stream_transform.js
│               │   │   │   │   │   ├── _stream_writable.js
│               │   │   │   │   │   └── internal
│               │   │   │   │   │       └── streams
│               │   │   │   │   │           ├── BufferList.js
│               │   │   │   │   │           ├── stream-browser.js
│               │   │   │   │   │           └── stream.js
│               │   │   │   │   ├── package.json
│               │   │   │   │   ├── passthrough.js
│               │   │   │   │   ├── readable-browser.js
│               │   │   │   │   ├── readable.js
│               │   │   │   │   ├── transform.js
│               │   │   │   │   ├── writable-browser.js
│               │   │   │   │   └── writable.js
│               │   │   │   └── string_decoder
│               │   │   │       ├── LICENSE
│               │   │   │       ├── README.md
│               │   │   │       ├── lib
│               │   │   │       │   └── string_decoder.js
│               │   │   │       └── package.json
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── configstore
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── core-util-is
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── float.patch
│               │   │   ├── lib
│               │   │   │   └── util.js
│               │   │   ├── package.json
│               │   │   └── test.js
│               │   ├── create-error-class
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── cross-spawn-async
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── appveyor.yml
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── enoent.js
│               │   │   │   ├── parse.js
│               │   │   │   └── resolveCommand.js
│               │   │   └── package.json
│               │   ├── crypto-random-string
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── currently-unhandled
│               │   │   ├── browser.js
│               │   │   ├── core.js
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── cuss
│               │   │   ├── LICENSE
│               │   │   ├── index.json
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── debug
│               │   │   ├── Readme.md
│               │   │   ├── debug.js
│               │   │   ├── lib
│               │   │   │   └── debug.js
│               │   │   └── package.json
│               │   ├── decamelize
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── deep-extend
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   └── deep-extend.js
│               │   │   └── package.json
│               │   ├── dot-prop
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── duplexer
│               │   │   ├── LICENCE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── duplexer3
│               │   │   ├── LICENSE.md
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── end-of-stream
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── error-ex
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── escape-string-regexp
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── esprima
│               │   │   ├── ChangeLog
│               │   │   ├── LICENSE.BSD
│               │   │   ├── README.md
│               │   │   ├── bin
│               │   │   │   ├── esparse.js
│               │   │   │   └── esvalidate.js
│               │   │   ├── dist
│               │   │   │   └── esprima.js
│               │   │   └── package.json
│               │   ├── event-stream
│               │   │   ├── LICENCE
│               │   │   ├── examples
│               │   │   │   └── pretty.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.markdown
│               │   │   └── test
│               │   │       ├── connect.asynct.js
│               │   │       ├── helper
│               │   │       │   └── index.js
│               │   │       ├── merge.asynct.js
│               │   │       ├── pause.asynct.js
│               │   │       ├── pipeline.asynct.js
│               │   │       ├── readArray.asynct.js
│               │   │       ├── readable.asynct.js
│               │   │       ├── replace.asynct.js
│               │   │       ├── simple-map.asynct.js
│               │   │       ├── spec.asynct.js
│               │   │       ├── split.asynct.js
│               │   │       ├── stringify.js
│               │   │       └── writeArray.asynct.js
│               │   ├── execa
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── extend
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── component.json
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── fault
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── find-up
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── fn-name
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── format
│               │   │   ├── Makefile
│               │   │   ├── Readme.md
│               │   │   ├── component.json
│               │   │   ├── format-min.js
│               │   │   ├── format.js
│               │   │   ├── package.json
│               │   │   └── test_format.js
│               │   ├── from
│               │   │   ├── LICENSE.APACHE2
│               │   │   ├── LICENSE.MIT
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.markdown
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── fs.realpath
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── old.js
│               │   │   └── package.json
│               │   ├── function-bind
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── implementation.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── get-stdin
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── get-stream
│               │   │   ├── buffer-stream.js
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── git-diff-tree
│               │   │   ├── README.md
│               │   │   ├── examples
│               │   │   │   ├── basic.js
│               │   │   │   └── sample_output.txt
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── parseRawDiffLine.js
│               │   │   │   ├── parseStream.js
│               │   │   │   └── streamDiff.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       ├── in.txt
│               │   │       ├── out.json
│               │   │       └── test.js
│               │   ├── git-spawned-stream
│               │   │   ├── README.md
│               │   │   ├── example.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test.js
│               │   ├── glob
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── changelog.md
│               │   │   ├── common.js
│               │   │   ├── glob.js
│               │   │   ├── package.json
│               │   │   └── sync.js
│               │   ├── got
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── graceful-fs
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── fs.js
│               │   │   ├── graceful-fs.js
│               │   │   ├── legacy-streams.js
│               │   │   ├── package.json
│               │   │   └── polyfills.js
│               │   ├── has
│               │   │   ├── LICENSE-MIT
│               │   │   ├── README.mkd
│               │   │   ├── package.json
│               │   │   ├── src
│               │   │   │   └── index.js
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── has-ansi
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── hosted-git-info
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── git-host-info.js
│               │   │   ├── git-host.js
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── ignore
│               │   │   ├── LICENSE-MIT
│               │   │   ├── README.md
│               │   │   ├── ignore.js
│               │   │   ├── index.d.ts
│               │   │   └── package.json
│               │   ├── imurmurhash
│               │   │   ├── README.md
│               │   │   ├── imurmurhash.js
│               │   │   ├── imurmurhash.min.js
│               │   │   └── package.json
│               │   ├── indent-string
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── inflight
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── inflight.js
│               │   │   └── package.json
│               │   ├── inherits
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── inherits.js
│               │   │   ├── inherits_browser.js
│               │   │   └── package.json
│               │   ├── ini
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── ini.js
│               │   │   └── package.json
│               │   ├── irregular-plurals
│               │   │   ├── irregular-plurals.json
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-alphabetical
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-alphanumerical
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-arrayish
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── is-buffer
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── basic.js
│               │   ├── is-builtin-module
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-decimal
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-empty
│               │   │   ├── History.md
│               │   │   ├── Readme.md
│               │   │   ├── lib
│               │   │   │   └── index.js
│               │   │   └── package.json
│               │   ├── is-finite
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-fullwidth-code-point
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-hexadecimal
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-hidden
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-npm
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-obj
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-object
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── is-plain-obj
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-redirect
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-retry-allowed
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-stream
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-utf8
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── is-utf8.js
│               │   │   └── package.json
│               │   ├── is-whitespace-character
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── is-word-character
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── isarray
│               │   │   ├── README.md
│               │   │   ├── build
│               │   │   │   └── build.js
│               │   │   ├── component.json
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── isexe
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── mode.js
│               │   │   ├── package.json
│               │   │   ├── test
│               │   │   │   └── basic.js
│               │   │   └── windows.js
│               │   ├── js-yaml
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── bin
│               │   │   │   └── js-yaml.js
│               │   │   ├── dist
│               │   │   │   ├── js-yaml.js
│               │   │   │   └── js-yaml.min.js
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── js-yaml
│               │   │   │   │   ├── common.js
│               │   │   │   │   ├── dumper.js
│               │   │   │   │   ├── exception.js
│               │   │   │   │   ├── loader.js
│               │   │   │   │   ├── mark.js
│               │   │   │   │   ├── schema
│               │   │   │   │   │   ├── core.js
│               │   │   │   │   │   ├── default_full.js
│               │   │   │   │   │   ├── default_safe.js
│               │   │   │   │   │   ├── failsafe.js
│               │   │   │   │   │   └── json.js
│               │   │   │   │   ├── schema.js
│               │   │   │   │   ├── type
│               │   │   │   │   │   ├── binary.js
│               │   │   │   │   │   ├── bool.js
│               │   │   │   │   │   ├── float.js
│               │   │   │   │   │   ├── int.js
│               │   │   │   │   │   ├── js
│               │   │   │   │   │   │   ├── function.js
│               │   │   │   │   │   │   ├── regexp.js
│               │   │   │   │   │   │   └── undefined.js
│               │   │   │   │   │   ├── map.js
│               │   │   │   │   │   ├── merge.js
│               │   │   │   │   │   ├── null.js
│               │   │   │   │   │   ├── omap.js
│               │   │   │   │   │   ├── pairs.js
│               │   │   │   │   │   ├── seq.js
│               │   │   │   │   │   ├── set.js
│               │   │   │   │   │   ├── str.js
│               │   │   │   │   │   └── timestamp.js
│               │   │   │   │   └── type.js
│               │   │   │   └── js-yaml.js
│               │   │   └── package.json
│               │   ├── latest-version
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── lazy-req
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── limit-spawn
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── examples
│               │   │   │   ├── forever-output.js
│               │   │   │   └── limit.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       ├── index.js
│               │   │       └── lib
│               │   │           └── forever-output.js
│               │   ├── load-json-file
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── load-plugin
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── lodash.difference
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── lodash.intersection
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── log-symbols
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── loud-rejection
│               │   │   ├── api.js
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   ├── readme.md
│               │   │   └── register.js
│               │   ├── lowercase-keys
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── lru-cache
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── lib
│               │   │   │   └── lru-cache.js
│               │   │   └── package.json
│               │   ├── make-dir
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── map-obj
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── map-stream
│               │   │   ├── LICENCE
│               │   │   ├── examples
│               │   │   │   └── pretty.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.markdown
│               │   │   └── test
│               │   │       └── simple-map.asynct.js
│               │   ├── markdown-escapes
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── mdast-comment-marker
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── mdast-util-to-nlcst
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── meow
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── minimatch
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── minimatch.js
│               │   │   └── package.json
│               │   ├── minimist
│               │   │   ├── LICENSE
│               │   │   ├── example
│               │   │   │   └── parse.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.markdown
│               │   │   └── test
│               │   │       ├── all_bool.js
│               │   │       ├── bool.js
│               │   │       ├── dash.js
│               │   │       ├── default_bool.js
│               │   │       ├── dotted.js
│               │   │       ├── kv_short.js
│               │   │       ├── long.js
│               │   │       ├── num.js
│               │   │       ├── parse.js
│               │   │       ├── parse_modified.js
│               │   │       ├── short.js
│               │   │       ├── stop_early.js
│               │   │       ├── unknown.js
│               │   │       └── whitespace.js
│               │   ├── ms
│               │   │   ├── index.js
│               │   │   ├── license.md
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── nlcst-is-literal
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── nlcst-normalize
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── nlcst-search
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── nlcst-to-string
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── normalize-package-data
│               │   │   ├── AUTHORS
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── lib
│               │   │   │   ├── extract_description.js
│               │   │   │   ├── fixer.js
│               │   │   │   ├── make_warning.js
│               │   │   │   ├── normalize.js
│               │   │   │   ├── safe_format.js
│               │   │   │   ├── typos.json
│               │   │   │   └── warning_messages.json
│               │   │   └── package.json
│               │   ├── npm-prefix
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── npm-run-path
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── number-is-nan
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── object-assign
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── object-keys
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── isArguments.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── once
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── once.js
│               │   │   └── package.json
│               │   ├── os-homedir
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── package-json
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── parse-english
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── parse-entities
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── parse-json
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   ├── readme.md
│               │   │   └── vendor
│               │   │       ├── parse.js
│               │   │       └── unicode.js
│               │   ├── parse-latin
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── expressions.js
│               │   │   │   ├── index.js
│               │   │   │   ├── parser.js
│               │   │   │   ├── plugin
│               │   │   │   │   ├── break-implicit-sentences.js
│               │   │   │   │   ├── make-final-white-space-siblings.js
│               │   │   │   │   ├── make-initial-white-space-siblings.js
│               │   │   │   │   ├── merge-affix-exceptions.js
│               │   │   │   │   ├── merge-affix-symbol.js
│               │   │   │   │   ├── merge-final-word-symbol.js
│               │   │   │   │   ├── merge-initial-digit-sentences.js
│               │   │   │   │   ├── merge-initial-lower-case-letter-sentences.js
│               │   │   │   │   ├── merge-initial-word-symbol.js
│               │   │   │   │   ├── merge-initialisms.js
│               │   │   │   │   ├── merge-inner-word-slash.js
│               │   │   │   │   ├── merge-inner-word-symbol.js
│               │   │   │   │   ├── merge-non-word-sentences.js
│               │   │   │   │   ├── merge-prefix-exceptions.js
│               │   │   │   │   ├── merge-remaining-full-stops.js
│               │   │   │   │   ├── merge-words.js
│               │   │   │   │   ├── patch-position.js
│               │   │   │   │   └── remove-empty-nodes.js
│               │   │   │   └── tokenizer.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── path-exists
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── path-is-absolute
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── path-key
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── path-type
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── pause-stream
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.markdown
│               │   │   └── test
│               │   │       ├── index.js
│               │   │       └── pause-end.js
│               │   ├── pify
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── pinkie
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── pinkie-promise
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── plur
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── prepend-http
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── process-nextick-args
│               │   │   ├── index.js
│               │   │   ├── license.md
│               │   │   ├── package.json
│               │   │   ├── readme.md
│               │   │   └── test.js
│               │   ├── pseudomap
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── map.js
│               │   │   ├── package.json
│               │   │   ├── pseudomap.js
│               │   │   └── test
│               │   │       └── basic.js
│               │   ├── pump
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── test-browser.js
│               │   │   └── test.js
│               │   ├── pump-chain
│               │   │   ├── README.md
│               │   │   ├── example.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test.js
│               │   ├── quotation
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── rc
│               │   │   ├── LICENSE.APACHE2
│               │   │   ├── LICENSE.BSD
│               │   │   ├── LICENSE.MIT
│               │   │   ├── README.md
│               │   │   ├── browser.js
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   └── utils.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       ├── ini.js
│               │   │       ├── nested-env-vars.js
│               │   │       └── test.js
│               │   ├── read-pkg
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── read-pkg-up
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── readable-stream
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── duplex.js
│               │   │   ├── lib
│               │   │   │   ├── _stream_duplex.js
│               │   │   │   ├── _stream_passthrough.js
│               │   │   │   ├── _stream_readable.js
│               │   │   │   ├── _stream_transform.js
│               │   │   │   └── _stream_writable.js
│               │   │   ├── package.json
│               │   │   ├── passthrough.js
│               │   │   ├── readable.js
│               │   │   ├── transform.js
│               │   │   └── writable.js
│               │   ├── redent
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── registry-auth-token
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── base64.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── registry-url.js
│               │   │   ├── test
│               │   │   │   ├── auth-token.test.js
│               │   │   │   └── registry-url.test.js
│               │   │   └── yarn.lock
│               │   ├── registry-url
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── remark-message-control
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── remark-parse
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── block-elements.json
│               │   │   │   ├── decode.js
│               │   │   │   ├── defaults.js
│               │   │   │   ├── locate
│               │   │   │   │   ├── break.js
│               │   │   │   │   ├── code-inline.js
│               │   │   │   │   ├── delete.js
│               │   │   │   │   ├── emphasis.js
│               │   │   │   │   ├── escape.js
│               │   │   │   │   ├── link.js
│               │   │   │   │   ├── strong.js
│               │   │   │   │   ├── tag.js
│               │   │   │   │   └── url.js
│               │   │   │   ├── parse.js
│               │   │   │   ├── parser.js
│               │   │   │   ├── set-options.js
│               │   │   │   ├── tokenize
│               │   │   │   │   ├── auto-link.js
│               │   │   │   │   ├── blockquote.js
│               │   │   │   │   ├── break.js
│               │   │   │   │   ├── code-fenced.js
│               │   │   │   │   ├── code-indented.js
│               │   │   │   │   ├── code-inline.js
│               │   │   │   │   ├── definition.js
│               │   │   │   │   ├── delete.js
│               │   │   │   │   ├── emphasis.js
│               │   │   │   │   ├── escape.js
│               │   │   │   │   ├── footnote-definition.js
│               │   │   │   │   ├── heading-atx.js
│               │   │   │   │   ├── heading-setext.js
│               │   │   │   │   ├── html-block.js
│               │   │   │   │   ├── html-inline.js
│               │   │   │   │   ├── link.js
│               │   │   │   │   ├── list.js
│               │   │   │   │   ├── newline.js
│               │   │   │   │   ├── paragraph.js
│               │   │   │   │   ├── reference.js
│               │   │   │   │   ├── strong.js
│               │   │   │   │   ├── table.js
│               │   │   │   │   ├── text.js
│               │   │   │   │   ├── thematic-break.js
│               │   │   │   │   ├── url.js
│               │   │   │   │   └── yaml.js
│               │   │   │   ├── tokenizer.js
│               │   │   │   ├── unescape.js
│               │   │   │   └── util
│               │   │   │       ├── get-indentation.js
│               │   │   │       ├── html.js
│               │   │   │       ├── interrupt.js
│               │   │   │       ├── normalize.js
│               │   │   │       └── remove-indentation.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── remark-retext
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── repeat-string
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── repeating
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── replace-ext
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── resolve-from
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── retext-english
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── retext-equality
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── index.js
│               │   │   │   └── patterns.json
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── retext-profanities
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── safe-buffer
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── browser.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test.js
│               │   ├── semver
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── bin
│               │   │   │   └── semver
│               │   │   ├── package.json
│               │   │   ├── range.bnf
│               │   │   └── semver.js
│               │   ├── semver-diff
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── shellsubstitute
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.md
│               │   │   └── test
│               │   │       └── spec.js
│               │   ├── signal-exit
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE.txt
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── signals.js
│               │   ├── sliced
│               │   │   ├── History.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── slide
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── async-map-ordered.js
│               │   │   │   ├── async-map.js
│               │   │   │   ├── bind-actor.js
│               │   │   │   ├── chain.js
│               │   │   │   └── slide.js
│               │   │   └── package.json
│               │   ├── spawn-to-readstream
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── examples
│               │   │   │   ├── byte-limit.js
│               │   │   │   ├── data-generator.js
│               │   │   │   ├── data.js
│               │   │   │   ├── error.js
│               │   │   │   └── pipe-to-fs.js
│               │   │   ├── index.js
│               │   │   ├── node_modules
│               │   │   │   ├── object-keys
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── foreach.js
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── isArguments.js
│               │   │   │   │   ├── package.json
│               │   │   │   │   ├── shim.js
│               │   │   │   │   └── test
│               │   │   │   │       ├── foreach.js
│               │   │   │   │       ├── index.js
│               │   │   │   │       ├── isArguments.js
│               │   │   │   │       └── shim.js
│               │   │   │   ├── through2
│               │   │   │   │   ├── LICENSE
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── package.json
│               │   │   │   │   └── through2.js
│               │   │   │   └── xtend
│               │   │   │       ├── LICENCE
│               │   │   │       ├── Makefile
│               │   │   │       ├── README.md
│               │   │   │       ├── has-keys.js
│               │   │   │       ├── index.js
│               │   │   │       ├── mutable.js
│               │   │   │       ├── package.json
│               │   │   │       └── test.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── spdx-correct
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── spdx-expression-parse
│               │   │   ├── AUTHORS
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── parser.js
│               │   ├── spdx-license-ids
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── package.json
│               │   │   └── spdx-license-ids.json
│               │   ├── split
│               │   │   ├── LICENCE
│               │   │   ├── examples
│               │   │   │   └── pretty.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.markdown
│               │   │   └── test
│               │   │       ├── partitioned_unicode.js
│               │   │       ├── split.asynct.js
│               │   │       └── try_catch.asynct.js
│               │   ├── split-transform-stream
│               │   │   ├── README.md
│               │   │   ├── example.js
│               │   │   ├── index.js
│               │   │   ├── node_modules
│               │   │   │   ├── bubble-stream-error
│               │   │   │   │   ├── LICENSE
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── bubble.js
│               │   │   │   │   ├── examples
│               │   │   │   │   │   └── fs-and-zlib.js
│               │   │   │   │   ├── package.json
│               │   │   │   │   └── test
│               │   │   │   │       └── bubble.js
│               │   │   │   ├── object-keys
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── foreach.js
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── isArguments.js
│               │   │   │   │   ├── package.json
│               │   │   │   │   ├── shim.js
│               │   │   │   │   └── test
│               │   │   │   │       ├── foreach.js
│               │   │   │   │       ├── index.js
│               │   │   │   │       ├── isArguments.js
│               │   │   │   │       └── shim.js
│               │   │   │   ├── through2
│               │   │   │   │   ├── LICENSE
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── package.json
│               │   │   │   │   └── through2.js
│               │   │   │   └── xtend
│               │   │   │       ├── LICENCE
│               │   │   │       ├── Makefile
│               │   │   │       ├── README.md
│               │   │   │       ├── has-keys.js
│               │   │   │       ├── index.js
│               │   │   │       ├── mutable.js
│               │   │   │       ├── package.json
│               │   │   │       └── test.js
│               │   │   ├── package.json
│               │   │   └── test.js
│               │   ├── sprintf-js
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── bower.json
│               │   │   ├── demo
│               │   │   │   └── angular.html
│               │   │   ├── dist
│               │   │   │   ├── angular-sprintf.min.js
│               │   │   │   ├── angular-sprintf.min.js.map
│               │   │   │   ├── angular-sprintf.min.map
│               │   │   │   ├── sprintf.min.js
│               │   │   │   ├── sprintf.min.js.map
│               │   │   │   └── sprintf.min.map
│               │   │   ├── gruntfile.js
│               │   │   ├── package.json
│               │   │   ├── src
│               │   │   │   ├── angular-sprintf.js
│               │   │   │   └── sprintf.js
│               │   │   └── test
│               │   │       └── test.js
│               │   ├── state-toggle
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── stream-combiner
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── string-width
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── string_decoder
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── strip-ansi
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── strip-bom
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── strip-eof
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── strip-indent
│               │   │   ├── cli.js
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── strip-json-comments
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── supports-color
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── term-size
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   ├── readme.md
│               │   │   └── vendor
│               │   │       ├── resize
│               │   │       └── win-term-size.exe
│               │   ├── through
│               │   │   ├── LICENSE.APACHE2
│               │   │   ├── LICENSE.MIT
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.markdown
│               │   │   └── test
│               │   │       ├── async.js
│               │   │       ├── auto-destroy.js
│               │   │       ├── buffering.js
│               │   │       ├── end.js
│               │   │       └── index.js
│               │   ├── through2
│               │   │   ├── LICENSE.html
│               │   │   ├── LICENSE.md
│               │   │   ├── README.md
│               │   │   ├── node_modules
│               │   │   │   ├── isarray
│               │   │   │   │   ├── Makefile
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── component.json
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── package.json
│               │   │   │   │   └── test.js
│               │   │   │   ├── readable-stream
│               │   │   │   │   ├── CONTRIBUTING.md
│               │   │   │   │   ├── GOVERNANCE.md
│               │   │   │   │   ├── LICENSE
│               │   │   │   │   ├── README.md
│               │   │   │   │   ├── doc
│               │   │   │   │   │   └── wg-meetings
│               │   │   │   │   │       └── 2015-01-30.md
│               │   │   │   │   ├── duplex-browser.js
│               │   │   │   │   ├── duplex.js
│               │   │   │   │   ├── lib
│               │   │   │   │   │   ├── _stream_duplex.js
│               │   │   │   │   │   ├── _stream_passthrough.js
│               │   │   │   │   │   ├── _stream_readable.js
│               │   │   │   │   │   ├── _stream_transform.js
│               │   │   │   │   │   ├── _stream_writable.js
│               │   │   │   │   │   └── internal
│               │   │   │   │   │       └── streams
│               │   │   │   │   │           ├── BufferList.js
│               │   │   │   │   │           ├── stream-browser.js
│               │   │   │   │   │           └── stream.js
│               │   │   │   │   ├── package.json
│               │   │   │   │   ├── passthrough.js
│               │   │   │   │   ├── readable-browser.js
│               │   │   │   │   ├── readable.js
│               │   │   │   │   ├── transform.js
│               │   │   │   │   ├── writable-browser.js
│               │   │   │   │   └── writable.js
│               │   │   │   └── string_decoder
│               │   │   │       ├── LICENSE
│               │   │   │       ├── README.md
│               │   │   │       ├── lib
│               │   │   │       │   └── string_decoder.js
│               │   │   │       └── package.json
│               │   │   ├── package.json
│               │   │   └── through2.js
│               │   ├── timed-out
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── to-vfile
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── lib
│               │   │   │   ├── core.js
│               │   │   │   └── fs.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── trim
│               │   │   ├── History.md
│               │   │   ├── Makefile
│               │   │   ├── Readme.md
│               │   │   ├── component.json
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── trim-newlines
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── trim-trailing-lines
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── trough
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── typedarray
│               │   │   ├── LICENSE
│               │   │   ├── example
│               │   │   │   └── tarray.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   ├── readme.markdown
│               │   │   └── test
│               │   │       ├── server
│               │   │       │   └── undef_globals.js
│               │   │       └── tarray.js
│               │   ├── unherit
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unified
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unified-diff
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unified-engine
│               │   │   ├── LICENSE
│               │   │   ├── lib
│               │   │   │   ├── configuration.js
│               │   │   │   ├── file-pipeline
│               │   │   │   │   ├── configure.js
│               │   │   │   │   ├── copy.js
│               │   │   │   │   ├── file-system.js
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── parse.js
│               │   │   │   │   ├── queue.js
│               │   │   │   │   ├── read.js
│               │   │   │   │   ├── stdout.js
│               │   │   │   │   ├── stringify.js
│               │   │   │   │   └── transform.js
│               │   │   │   ├── file-set-pipeline
│               │   │   │   │   ├── configure.js
│               │   │   │   │   ├── file-system.js
│               │   │   │   │   ├── index.js
│               │   │   │   │   ├── log.js
│               │   │   │   │   ├── stdin.js
│               │   │   │   │   └── transform.js
│               │   │   │   ├── file-set.js
│               │   │   │   ├── find-up.js
│               │   │   │   ├── finder.js
│               │   │   │   ├── ignore.js
│               │   │   │   └── index.js
│               │   │   ├── node_modules
│               │   │   │   └── debug
│               │   │   │       ├── CHANGELOG.md
│               │   │   │       ├── LICENSE
│               │   │   │       ├── Makefile
│               │   │   │       ├── README.md
│               │   │   │       ├── component.json
│               │   │   │       ├── karma.conf.js
│               │   │   │       ├── node.js
│               │   │   │       ├── package.json
│               │   │   │       └── src
│               │   │   │           ├── browser.js
│               │   │   │           ├── debug.js
│               │   │   │           ├── index.js
│               │   │   │           └── node.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unique-string
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unist-util-modify-children
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unist-util-position
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unist-util-remove-position
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unist-util-stringify-position
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unist-util-visit
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unist-util-visit-children
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── untildify
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── unzip-response
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── update-notifier
│               │   │   ├── check.js
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── url-parse-lax
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── util-deprecate
│               │   │   ├── History.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── browser.js
│               │   │   ├── node.js
│               │   │   └── package.json
│               │   ├── validate-npm-package-license
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── vfile
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── vfile-find-up
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── vfile-location
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── vfile-reporter
│               │   │   ├── LICENSE
│               │   │   ├── history.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── vfile-sort
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── vfile-statistics
│               │   │   ├── LICENSE
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── which
│               │   │   ├── CHANGELOG.md
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── bin
│               │   │   │   └── which
│               │   │   ├── package.json
│               │   │   └── which.js
│               │   ├── widest-line
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── wrappy
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── package.json
│               │   │   └── wrappy.js
│               │   ├── write-file-atomic
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── x-is-function
│               │   │   ├── LICENSE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   └── package.json
│               │   ├── x-is-string
│               │   │   ├── LICENCE
│               │   │   ├── README.md
│               │   │   ├── index.js
│               │   │   ├── package.json
│               │   │   └── test
│               │   │       └── index.js
│               │   ├── xdg-basedir
│               │   │   ├── index.js
│               │   │   ├── license
│               │   │   ├── package.json
│               │   │   └── readme.md
│               │   ├── xtend
│               │   │   ├── LICENCE
│               │   │   ├── Makefile
│               │   │   ├── README.md
│               │   │   ├── immutable.js
│               │   │   ├── mutable.js
│               │   │   ├── package.json
│               │   │   └── test.js
│               │   └── yallist
│               │       ├── LICENSE
│               │       ├── README.md
│               │       ├── iterator.js
│               │       ├── package.json
│               │       └── yallist.js
│               ├── package.json
│               └── readme.md
└── readme.md

364 directories, 1431 files

@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 1, 2017

@chrmoritz was saying it's dependent on whether the files to install happen to be specifically whitelisted or not: Homebrew/homebrew-core#14085 (comment)

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

So far it hasn't appeared in any of:

alexjs
angular-cli
autocode
babel
bower
coffeescript 

@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 1, 2017

@DomT4 yeah, I'm pretty skeptical that, even if it's true in some cases, that it would actually be a regression as opposed to preexisting behavior since upstream has said in more than one place that pack+install is the same as the old install, but obviously @chrmoritz knows more about the topic than I do by a mile.

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

I'm down to gitter-cli in the brew uses node list & I'm still seeing no evidence at all that the .brew_home folder is being picked up anywhere, so, I think we're alright on that.

@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 1, 2017

Do we know if this new behavior (i.e. running pack first) is backwards compatible with the prior versions of npm < 5?

--verbose
--global
--prefix=#{libexec}
#{Dir.pwd}/#{Utils.popen_read("npm pack").chomp}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It used to be possible to use std_npm_install_args with an arbitrary package name by doing something like

args = std_npm_install_args(libexec/"vendor") << "foo@2"
system "npm", "install", *args

but now it looks like that won't be possible.

Admittedly, I don't think that behavior is actually used in core currently, but I'm wondering if we should allow an optional second argument with arbitrary package name(s), or a splat argument for any additional parameters, or something else along those lines, so that the node language module doesn't lose the flexibility it currently has. (i.e., if second arg is nil, do the pack magic, otherwise pass the parameters along and don't do pack magic.)

Copy link
Contributor

@chrmoritz chrmoritz Jun 1, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure this was possible? Would std_npm_install_args(libexec/"vendor") << "foo@2" really overide the "."paramater which tells npm to install the local folder (or at least told before npm@5)?

I think it would just tell npm to install BOTH the local folder = "." AND foo@2and if couldn't find a valid node module in the current working directory it would error out early.
I don't think that such a hacky behavior (installing the module at the current local folder and an other named module) is something we want to support here. Also it looks to contradict against the homebrew philosopy that foo should be vendored as a resource too in such a use case.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The package name actually went first in the example I was recalling, where this did work:

      system "npm", "install", "yarn", *Language::Node.std_npm_install_args(buildpath/"vendor/yarn")
      system buildpath/"vendor/yarn/bin/yarn", "install"

Also it looks to contradict against the homebrew philosopy that foo should be vendored as a resource too in such a use case.

We have an exception for things installed via other trusted package managers (e.g. venv.pip_install, cabal_install, etc.)

Copy link
Contributor

@chrmoritz chrmoritz Jun 1, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah this will work, but it will install BOTH yarn and the module at the current working directory to buildpath/"vendor/yarn"which is not what you would expect from it (the installing the module at the cwd too part) and it will only work if the cwd is a valid node module.
Just do a npm install grunt-cli -g --verbose . from a cwd which is not a node module to confirm this.

It's more like a very dirty hack using the API for something it was not meant to be used to. Supporting such a use case by adding a third global_npm_install_args (which does the right thing without installing the cwd as a module too) should be a much cleaner way to do so.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Supporting such a use case by adding a third global_npm_install_args (which does the right thing without installing the cwd as a module too) should be a much cleaner way to do so.

Yes, that would probably be a nice thing to have at some point.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should have some sort of error handling for the case where npm pack fails. Run Utils.popen_read("npm pack") before interpolation and check the exit code with $?.

@chrmoritz
Copy link
Contributor

chrmoritz commented Jun 1, 2017

I said .brew_home would be packed (when not using the files attribute) in the proposed patch from the other core PR and suggested a fix by moving npm pack to the exact position the PR has moved it. So this (plus that npm pack should be run for local_npm_install_args) is already addressed here and won't happen with this PR. 👍

Do we know if this new behavior (i.e. running pack first) is backwards compatible with the prior versions of npm < 5?

It should be beackwarts compatible to at least npm@3, because it's basicaly the exact same thing our npm install folder call has done before unter the hood. (see this comment)

@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 1, 2017

when not using the files attribute

When would that occur and how does moving it make any difference?

@chrmoritz
Copy link
Contributor

chrmoritz commented Jun 1, 2017

When would that occur

When a module author would decide to not use this optional field and rely on the default package everything except stuff in .npmignore behavior.

and how does moving it make any difference?

Because now npm pack is run after we create the .npmignore ignore file, which was originaly added to prevent to magic .brew_home folder from getting installed (and now getting packed).
The other patch propsed to run it in setup_npm_environmentwhich would be executed before line 24.

@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 1, 2017

Because now npm pack is run after we create the .npmignore ignore file

Makes sense now.

--verbose
--global
--prefix=#{libexec}
#{Dir.pwd}/#{Utils.popen_read("npm pack").chomp}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should have some sort of error handling for the case where npm pack fails. Run Utils.popen_read("npm pack") before interpolation and check the exit code with $?.

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

I can't comment on Mike's request for changes directly, so I'll note here that yes, I'll look at that.

@MikeMcQuaid
Copy link
Member

Thanks, @DomT4!

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

Changes pushed here. Let me know how much y'all hate it 😸

Utils.popen_read("npm pack").chomp
return if $?.exitstatus.zero?
raise "npm failed to pack #{Dir.pwd}"
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this still actually return the tarball path?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

irb(main):001:0> def foo
irb(main):002:1> 3
irb(main):003:1> return if 1 == 1
irb(main):004:1> end
=> :foo
irb(main):005:0> foo
=> nil

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not returning the variable, aye. Boo. So much for being lazy I guess 😄

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be able to use a lambda I guess. Maybe. Will check.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or I could just turn the Utils.popen_read into a block. I might try that. That feels sane. I've been thinking about this too long today & now my mind is sludge 😆

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

Nope. This doesn't raise successfully on failure. Alright, I'm gonna go drink something & clear my mind a bit. At the moment mentally on everything node I'm a collection of random & tired noises 😄.

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

I return, with a fresh push, which actually seems to work as intended now. I took some inspiration from shell_output because I remember we rely on checking exit code & still actually having an output to read there so often.

Copy link
Member

@MikeMcQuaid MikeMcQuaid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Final nits but almost there. Thanks again @DomT4!

# create and install real directories when passed a file path. We can
# restore the old behaviour by packing the path first with "npm pack"
# which also helpfully spits out the filename it just created allowing
# us to pass that as the final argument.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can trim this comment such that it doesn't reference the old behaviour; future people looking at this comment will want to know what it does and why it's necessary but doesn't really say that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically this comment should answer the question: "why do we need to run npm pack at all?" I don't understand the answer to that despite having read most of the conversation and definitely not just from this code.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I don't know how to explain it with brevity really, it's a fairly big change.

Essentially when you used to npm install some-directory --global --prefix="blah" you could then dispose of your build directory & purely retain the end product, the "blah" prefix in this example. From the new npm if you pass it a directory to install it only installs symlinks back to that directory in the "blah" prefix, which doesn't work for Homebrew since we trash buildpaths/testpaths the second we're done with 'em normally.

npm pack is supported as an upstream way of retaining the old behaviour Homebrew relies on to be able to sensibly package npm-using formulae.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, something like npm pack is needed to make a "clean" installation to a new directory i.e. not just install symlinks back to the source directory in the buildpath will do

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking about:

      # Homebrew assumes the buildpath/testpath will always be disposable
      # and from npm 5.0.0 the logic changed so that when a directory is
      # fed to `npm install` only symlinks are created linking back to that
      # directory, consequently breaking that assumption. We require a tarball
      # because npm install creates a "real" installation when fed a tarball.

But not sure if that's still too wordy/full/etc.

end

def self.std_npm_install_args(libexec)
setup_npm_environment
# tell npm to not install .brew_home by adding it to the .npmignore file
# (or creating a new one if no .npmignore file already exists)
open(".npmignore", "a") { |f| f.write("\n.brew_home\n") }
pack = pack_for_installation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pedantry but I'd add a newline above this because the comment doesn't seem to reference it but yet it feels related.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, no worries.

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

When the time comes to roll here, ideally, we probably want:

I think that makes logical sense.

@MikeMcQuaid
Copy link
Member

Going to bed by any maintainer can feel free to merge this in the order Dom says above when green. I want to wait a bit after merge before cutting a new tag, though, just to make sure there's not other bugs there.

@ilovezfs ilovezfs merged commit daa6788 into Homebrew:master Jun 1, 2017
@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 1, 2017

🚢'd

Thanks @DomT4

@DomT4 DomT4 deleted the node branch June 1, 2017 23:52
@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

Thanks @ilovezfs ❤️. This side of the changes proved relatively painless, thankfully. Or at least, so far 😄.

@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 1, 2017

Don't jinx it.

@DomT4
Copy link
Member Author

DomT4 commented Jun 1, 2017

🤐

@Homebrew Homebrew locked and limited conversation to collaborators May 4, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants