Yarn: Better handling of nested executable script

Created on 12 Oct 2016  ยท  20Comments  ยท  Source: yarnpkg/yarn

Do you want to request a _feature_ or report a _bug_?

feature/bug

What is the current behavior?

Let's pretend your project "A" has a dependency on "B" and "B" has a dependency on "Webpack", "ESlint" and more CLI...

Those CLI will be stored inside {A}/node_modules/B/node_modules/.bin/* which will prevent any CLI from working within project "A".

It will be nice to have B CLI's available in A, like npm 3+ do.

I see several options:
1) Gather any nested CLI to the root ./node_modules/.bin
2) Gather only global package to the root
3) Add metadata inside package.json for project like B that act as meta-packages.

If the current behavior is a bug, please provide the steps to reproduce.

$ mkdir tmp
$ cd tmp/
$ yarn init
$ yarn add kw-web-suite
$ ls node_modules/.bin/
  fix-kw-web-suite
$ ls node_modules/kw-web-suite/node_modules/.bin/
  commitizen  eslint  git-cz  semantic-release  shjs  webpack  webpack-dev-server

What is the expected behavior?

I would expect to see node_modules/kw-web-suite/node_modules/.bin/ inside node_modules/.bin/

Please mention your node.js, yarn and operating system version.

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.11.6
BuildVersion:   15G1004
$ node --version
v6.3.1
$ yarn --version
0.15.1
cat-compatibility triaged

Most helpful comment

Sorry but this bug is still present in last nightly-build : 0.19.0

Scenario for reproducing the bug :

The file node_modules/.bin/ngd is not present

The file node_modules/.bin/ngd is present

All 20 comments

I would like to add that for me, using 0.15.1 on node 6.7.0, OSX El capitan:
when installing regular open source projects from npmjs, yarn installs node_modules/.bin.
The issue occurs only when installing from private repositories, then yarn doesn't event create the .bin folder at all, although the rest of node_modules looks fine.

In the mean time I'm using this gist to just mimic what npm usually does with all executables under node_modules (symlinks them into node_modules/.bin): https://gist.github.com/DanielZlotin/4199f3dd85d1b952117ea260a99fdb72

nice! Thanks for sharing

OK so further testing reveals the problem to be completely different: this has nothing to do with private repositories and can be reproduced using npmjs.
_This only happens to inner dependencies._

For example: if you have in your dependencies eslint, the resulting node_modules/.bin is:

eslint -> ../eslint/bin/eslint.js

But, if you remove everything from dependencies and put, say, standard, using yarn, you get only this single file under node_modules/.bin:

standard -> ../standard/bin/cmd.js

notice no eslint executable is present, even though standard brings eslint transitively.

To compare, here is the resulting install of a single dependency standard using npm 3:

drwxr-xr-x   12  361602828   408B Oct 18 20:19 .
drwxr-xr-x  146  361602828   4.8K Oct 18 20:19 ..
lrwxr-xr-x    1  361602828    18B Oct 18 20:19 acorn -> ../acorn/bin/acorn
lrwxr-xr-x    1  361602828    23B Oct 18 20:19 eslint -> ../eslint/bin/eslint.js
lrwxr-xr-x    1  361602828    25B Oct 18 20:19 esparse -> ../esprima/bin/esparse.js
lrwxr-xr-x    1  361602828    28B Oct 18 20:19 esvalidate -> ../esprima/bin/esvalidate.js
lrwxr-xr-x    1  361602828    25B Oct 18 20:19 js-yaml -> ../js-yaml/bin/js-yaml.js
lrwxr-xr-x    1  361602828    20B Oct 18 20:19 mkdirp -> ../mkdirp/bin/cmd.js
lrwxr-xr-x    1  361602828    16B Oct 18 20:19 rimraf -> ../rimraf/bin.js
lrwxr-xr-x    1  361602828    19B Oct 18 20:19 shjs -> ../shelljs/bin/shjs
lrwxr-xr-x    1  361602828    22B Oct 18 20:19 standard -> ../standard/bin/cmd.js
lrwxr-xr-x    1  361602828    29B Oct 18 20:19 strip-json-comments -> ../strip-json-comments/cli.js

As you can see, every transitive dependency which has an executable defined under package.json bin is getting linked in the top-most node_modules/.bin folder.

Something to do with this commit maybe? https://github.com/yarnpkg/yarn/commit/986938e9242b852dcc9e7488f6a34abf627174a9?diff=unified#diff-163b16ac3f2b452cccb80bff414a566cL167

@DanielZlotin you were right about that commit! I've created a PR that should fix this issue: https://github.com/yarnpkg/yarn/pull/1210

Just wanted to share this https://github.com/wix/yarn-bin-fix. This is a temporary fix to our migration pains.

Fixed via #1210.

Still not fix with yarn@0.16.1.

$ mkdir tmp
$ cd tmp/
$ yarn add kw-web-suite
yarn add v0.16.1
info No lockfile found.
[1/4] ๐Ÿ”  Resolving packages...
warning kw-web-suite > semantic-release > npmconf@2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm
warning kw-web-suite > commitizen > find-node-modules > findup-sync > glob > minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
warning kw-web-suite > semantic-release > @semantic-release/commit-analyzer > conventional-changelog@0.0.17: Please update conventional-changelog to >1.0.0. If you are running the cli, use conventional-changelog-cli
[2/4] ๐Ÿšš  Fetching packages...
[3/4] ๐Ÿ”—  Linking dependencies...
[4/4] ๐Ÿ“ƒ  Building fresh packages...
success Saved lockfile.
success Saved 866 new dependencies.
โ”œโ”€ @semantic-release/commit-analyzer@2.0.0
โ”œโ”€ @semantic-release/condition-travis@4.1.4
โ”œโ”€ @semantic-release/error@1.0.0
โ”œโ”€ @semantic-release/last-release-npm@1.2.1
โ”œโ”€ @semantic-release/release-notes-generator@2.0.0
โ”œโ”€ abbrev@1.0.9
โ”œโ”€ accepts@1.3.3
โ”œโ”€ acorn-jsx@3.0.1
โ”œโ”€ acorn@3.3.0
โ”œโ”€ ajv-keywords@1.1.1
โ”œโ”€ ajv@4.8.2
โ”œโ”€ align-text@0.1.4
โ”œโ”€ alphanum-sort@1.0.2
โ”œโ”€ amdefine@1.0.1
โ”œโ”€ ansi-escapes@1.4.0
โ”œโ”€ ansi-regex@2.0.0
โ”œโ”€ ansi-styles@2.2.1
โ”œโ”€ ansi@0.3.1
โ”œโ”€ anymatch@1.3.0
โ”œโ”€ aproba@1.0.4
โ”œโ”€ are-we-there-yet@1.0.6
โ”œโ”€ argparse@1.0.9
โ”œโ”€ arr-diff@2.0.0
โ”œโ”€ arr-flatten@1.0.1
โ”œโ”€ array-find-index@1.0.2
โ”œโ”€ array-find@1.0.0
โ”œโ”€ array-flatten@1.1.1
โ”œโ”€ array-union@1.0.2
โ”œโ”€ array-uniq@1.0.3
โ”œโ”€ array-unique@0.2.1
โ”œโ”€ arrify@1.0.1
โ”œโ”€ asap@2.0.5
โ”œโ”€ asn1.js@4.8.1
โ”œโ”€ asn1@0.2.3
โ”œโ”€ assert-plus@0.2.0
โ”œโ”€ assert@1.4.1
โ”œโ”€ ast-types@0.9.0
โ”œโ”€ async-each@1.0.1
โ”œโ”€ async@1.5.2
โ”œโ”€ asynckit@0.4.0
โ”œโ”€ autoprefixer@6.5.0
โ”œโ”€ aws-sign2@0.6.0
โ”œโ”€ aws4@1.5.0
โ”œโ”€ babel-code-frame@6.16.0
โ”œโ”€ babel-core@6.17.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-eslint@7.0.0
โ”œโ”€ babel-generator@6.18.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-helper-builder-react-jsx@6.18.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-helper-call-delegate@6.18.0
โ”œโ”€ babel-helper-define-map@6.18.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-helper-function-name@6.18.0
โ”œโ”€ babel-helper-get-function-arity@6.18.0
โ”œโ”€ babel-helper-hoist-variables@6.18.0
โ”œโ”€ babel-helper-optimise-call-expression@6.18.0
โ”œโ”€ babel-helper-regex@6.18.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-helper-replace-supers@6.18.0
โ”œโ”€ babel-helpers@6.16.0
โ”œโ”€ babel-loader@6.2.5
โ”œโ”€ babel-messages@6.8.0
โ”œโ”€ babel-plugin-check-es2015-constants@6.8.0
โ”œโ”€ babel-plugin-syntax-flow@6.18.0
โ”œโ”€ babel-plugin-syntax-jsx@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-arrow-functions@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-block-scoped-functions@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-block-scoping@6.18.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-plugin-transform-es2015-classes@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-computed-properties@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-destructuring@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-duplicate-keys@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-for-of@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-function-name@6.9.0
โ”œโ”€ babel-plugin-transform-es2015-literals@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-modules-amd@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-modules-commonjs@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-modules-systemjs@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-modules-umd@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-object-super@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-parameters@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-shorthand-properties@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-spread@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-sticky-regex@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-template-literals@6.8.0
โ”œโ”€ babel-plugin-transform-es2015-typeof-symbol@6.18.0
โ”œโ”€ babel-plugin-transform-es2015-unicode-regex@6.11.0
โ”‚  โ””โ”€ regexpu-core@2.0.0
โ”œโ”€ babel-plugin-transform-flow-strip-types@6.18.0
โ”œโ”€ babel-plugin-transform-react-display-name@6.8.0
โ”œโ”€ babel-plugin-transform-react-jsx-self@6.11.0
โ”œโ”€ babel-plugin-transform-react-jsx-source@6.9.0
โ”œโ”€ babel-plugin-transform-react-jsx@6.8.0
โ”œโ”€ babel-plugin-transform-regenerator@6.16.1
โ”œโ”€ babel-plugin-transform-strict-mode@6.18.0
โ”œโ”€ babel-polyfill@6.16.0
โ”œโ”€ babel-preset-es2015@6.16.0
โ”œโ”€ babel-preset-react@6.16.0
โ”œโ”€ babel-register@6.18.0
โ”‚  โ”œโ”€ babel-core@6.18.2
โ”‚  โ”œโ”€ json5@0.5.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-runtime@6.18.0
โ”œโ”€ babel-template@6.16.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-traverse@6.18.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babel-types@6.18.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ babylon@6.13.1
โ”œโ”€ balanced-match@0.4.2
โ”œโ”€ base64-js@1.2.0
โ”œโ”€ Base64@0.2.1
โ”œโ”€ batch@0.5.3
โ”œโ”€ bcrypt-pbkdf@1.0.0
โ”œโ”€ big.js@3.1.3
โ”œโ”€ binary-extensions@1.7.0
โ”œโ”€ block-stream@0.0.9
โ”œโ”€ bluebird@3.4.6
โ”œโ”€ bn.js@4.11.6
โ”œโ”€ boolbase@1.0.0
โ”œโ”€ boom@2.10.1
โ”œโ”€ brace-expansion@1.1.6
โ”œโ”€ braces@1.8.5
โ”œโ”€ brorand@1.0.6
โ”œโ”€ browserify-aes@1.0.6
โ”œโ”€ browserify-cipher@1.0.0
โ”œโ”€ browserify-des@1.0.0
โ”œโ”€ browserify-rsa@4.0.1
โ”œโ”€ browserify-sign@4.0.0
โ”œโ”€ browserify-zlib@0.1.4
โ”œโ”€ browserslist@1.4.0
โ”œโ”€ buffer-shims@1.0.0
โ”œโ”€ buffer-xor@1.0.3
โ”œโ”€ buffer@4.9.1
โ”œโ”€ builtin-modules@1.1.1
โ”œโ”€ bytes@2.3.0
โ”œโ”€ caller-path@0.1.0
โ”œโ”€ callsites@0.2.0
โ”œโ”€ camel-case@3.0.0
โ”œโ”€ camelcase-keys@2.1.0
โ”‚  โ””โ”€ camelcase@2.1.1
โ”œโ”€ camelcase@1.2.1
โ”œโ”€ caniuse-db@1.0.30000574
โ”œโ”€ caseless@0.11.0
โ”œโ”€ center-align@0.1.3
โ”œโ”€ chalk@1.1.3
โ”‚  โ””โ”€ supports-color@2.0.0
โ”œโ”€ change-case@3.0.0
โ”œโ”€ cheerio@0.19.0
โ”œโ”€ chokidar@1.6.1
โ”‚  โ””โ”€ is-glob@2.0.1
โ”œโ”€ cipher-base@1.0.3
โ”œโ”€ circular-json@0.3.1
โ”œโ”€ clap@1.1.1
โ”œโ”€ clean-css@3.4.20
โ”‚  โ”œโ”€ commander@2.8.1
โ”‚  โ””โ”€ source-map@0.4.4
โ”œโ”€ cli-cursor@1.0.2
โ”œโ”€ cli-width@2.1.0
โ”œโ”€ cliui@2.1.0
โ”‚  โ””โ”€ wordwrap@0.0.2
โ”œโ”€ clone@1.0.2
โ”œโ”€ co@4.6.0
โ”œโ”€ coa@1.0.1
โ”œโ”€ code-point-at@1.1.0
โ”œโ”€ color-convert@1.6.0
โ”œโ”€ color-name@1.1.1
โ”œโ”€ color-string@0.3.0
โ”œโ”€ color@0.11.4
โ”œโ”€ colormin@1.1.2
โ”œโ”€ colors@1.1.2
โ”œโ”€ combined-stream@1.0.5
โ”œโ”€ commander@2.9.0
โ”œโ”€ commitizen@2.8.6
โ”‚  โ”œโ”€ find-root@1.0.0
โ”‚  โ”œโ”€ glob@7.0.5
โ”‚  โ”œโ”€ inquirer@1.1.2
โ”‚  โ”‚  โ””โ”€ lodash@4.16.6
โ”‚  โ”œโ”€ lodash@4.15.0
โ”‚  โ”œโ”€ path-exists@2.1.0
โ”‚  โ”œโ”€ run-async@2.2.0
โ”‚  โ”œโ”€ shelljs@0.5.3
โ”‚  โ””โ”€ strip-json-comments@2.0.1
โ”œโ”€ commondir@1.0.1
โ”œโ”€ compressible@2.0.9
โ”œโ”€ compression@1.6.2
โ”œโ”€ concat-map@0.0.1
โ”œโ”€ concat-stream@1.5.2
โ”‚  โ””โ”€ readable-stream@2.0.6
โ”œโ”€ config-chain@1.1.11
โ”œโ”€ connect-history-api-fallback@1.3.0
โ”œโ”€ console-browserify@1.1.0
โ”œโ”€ console-control-strings@1.1.0
โ”œโ”€ constant-case@2.0.0
โ”œโ”€ constants-browserify@1.0.0
โ”œโ”€ contains-path@0.1.0
โ”œโ”€ content-disposition@0.5.1
โ”œโ”€ content-type@1.0.2
โ”œโ”€ conventional-changelog@0.0.17
โ”œโ”€ conventional-commit-types@2.1.0
โ”œโ”€ convert-source-map@1.3.0
โ”œโ”€ cookie-signature@1.0.6
โ”œโ”€ cookie@0.3.1
โ”œโ”€ core-js@2.4.1
โ”œโ”€ core-util-is@1.0.2
โ”œโ”€ create-ecdh@4.0.0
โ”œโ”€ create-hash@1.1.2
โ”œโ”€ create-hmac@1.1.4
โ”œโ”€ cryptiles@2.0.5
โ”œโ”€ crypto-browserify@3.11.0
โ”œโ”€ css-color-names@0.0.4
โ”œโ”€ css-loader@0.25.0
โ”œโ”€ css-select@1.0.0
โ”œโ”€ css-selector-tokenizer@0.6.0
โ”œโ”€ css-what@1.0.0
โ”œโ”€ cssesc@0.1.0
โ”œโ”€ cssnano@3.8.0
โ”‚  โ””โ”€ autoprefixer@6.5.1
โ”œโ”€ csso@2.2.1
โ”œโ”€ currently-unhandled@0.4.1
โ”œโ”€ cz-conventional-changelog@1.2.0
โ”œโ”€ d@0.1.1
โ”œโ”€ damerau-levenshtein@1.0.3
โ”œโ”€ dashdash@1.14.0
โ”‚  โ””โ”€ assert-plus@1.0.0
โ”œโ”€ date-now@0.1.4
โ”œโ”€ dateformat@1.0.12
โ”œโ”€ debug@2.2.0
โ”œโ”€ decamelize@1.2.0
โ”œโ”€ dedent@0.6.0
โ”œโ”€ deep-extend@0.4.1
โ”œโ”€ deep-is@0.1.3
โ”œโ”€ defined@1.0.0
โ”œโ”€ del@2.2.2
โ”œโ”€ delayed-stream@1.0.0
โ”œโ”€ delegates@1.0.0
โ”œโ”€ depd@1.1.0
โ”œโ”€ des.js@1.0.0
โ”œโ”€ destroy@1.0.4
โ”œโ”€ detect-indent@4.0.0
โ”œโ”€ dezalgo@1.0.3
โ”œโ”€ diffie-hellman@5.0.2
โ”œโ”€ doctrine@1.5.0
โ”œโ”€ dom-converter@0.1.4
โ”‚  โ””โ”€ utila@0.3.3
โ”œโ”€ dom-serializer@0.1.0
โ”œโ”€ domain-browser@1.1.7
โ”œโ”€ domelementtype@1.1.3
โ”œโ”€ domhandler@2.3.0
โ”‚  โ””โ”€ domelementtype@1.3.0
โ”œโ”€ domutils@1.4.3
โ”‚  โ””โ”€ domelementtype@1.3.0
โ”œโ”€ dot-case@2.1.0
โ”œโ”€ duplexer@0.1.1
โ”œโ”€ ecc-jsbn@0.1.1
โ”œโ”€ ee-first@1.1.1
โ”œโ”€ elliptic@6.3.2
โ”œโ”€ emojis-list@2.1.0
โ”œโ”€ encodeurl@1.0.1
โ”œโ”€ enhanced-resolve@0.9.1
โ”‚  โ””โ”€ memory-fs@0.2.0
โ”œโ”€ entities@1.1.1
โ”œโ”€ errno@0.1.4
โ”œโ”€ error-ex@1.3.0
โ”œโ”€ es5-ext@0.10.12
โ”œโ”€ es6-iterator@2.0.0
โ”œโ”€ es6-map@0.1.4
โ”œโ”€ es6-set@0.1.4
โ”œโ”€ es6-symbol@3.1.0
โ”œโ”€ es6-templates@0.2.3
โ”œโ”€ es6-weak-map@2.0.1
โ”œโ”€ escape-html@1.0.3
โ”œโ”€ escape-string-regexp@1.0.5
โ”œโ”€ escope@3.6.0
โ”œโ”€ eslint-config-airbnb-base@8.0.0
โ”œโ”€ eslint-config-airbnb@12.0.0
โ”œโ”€ eslint-import-resolver-node@0.2.3
โ”œโ”€ eslint-import-resolver-webpack@0.6.0
โ”‚  โ””โ”€ interpret@1.0.1
โ”œโ”€ eslint-loader@1.5.0
โ”œโ”€ eslint-plugin-import@1.16.0
โ”‚  โ””โ”€ doctrine@1.3.0
โ”œโ”€ eslint-plugin-jsx-a11y@2.2.2
โ”œโ”€ eslint-plugin-react@6.3.0
โ”œโ”€ eslint@3.7.1
โ”‚  โ”œโ”€ lodash@4.16.6
โ”‚  โ””โ”€ shelljs@0.6.1
โ”œโ”€ espree@3.3.2
โ”‚  โ””โ”€ acorn@4.0.3
โ”œโ”€ esprima@2.7.3
โ”œโ”€ esrecurse@4.1.0
โ”‚  โ””โ”€ estraverse@4.1.1
โ”œโ”€ estraverse@4.2.0
โ”œโ”€ esutils@2.0.2
โ”œโ”€ etag@1.7.0
โ”œโ”€ event-emitter@0.3.4
โ”œโ”€ event-stream@3.3.4
โ”œโ”€ eventemitter3@1.2.0
โ”œโ”€ events@1.1.1
โ”œโ”€ eventsource@0.1.6
โ”œโ”€ evp_bytestokey@1.0.0
โ”œโ”€ exit-hook@1.1.1
โ”œโ”€ expand-brackets@0.1.5
โ”œโ”€ expand-range@1.8.2
โ”œโ”€ expose-loader@0.7.1
โ”œโ”€ express@4.14.0
โ”œโ”€ extend@3.0.0
โ”œโ”€ external-editor@1.1.1
โ”œโ”€ extglob@0.3.2
โ”œโ”€ extsprintf@1.0.2
โ”œโ”€ fast-levenshtein@2.0.5
โ”œโ”€ fastparse@1.1.1
โ”œโ”€ faye-websocket@0.10.0
โ”œโ”€ figures@1.7.0
โ”œโ”€ file-entry-cache@2.0.0
โ”œโ”€ file-loader@0.9.0
โ”œโ”€ filename-regex@2.0.0
โ”œโ”€ fill-range@2.2.3
โ”œโ”€ finalhandler@0.5.0
โ”œโ”€ find-cache-dir@0.1.1
โ”œโ”€ find-node-modules@1.0.3
โ”œโ”€ find-root@0.1.2
โ”œโ”€ find-up@1.1.2
โ”‚  โ””โ”€ path-exists@2.1.0
โ”œโ”€ findup-sync@0.2.1
โ”‚  โ”œโ”€ glob@4.3.5
โ”‚  โ””โ”€ minimatch@2.0.10
โ”œโ”€ flat-cache@1.2.1
โ”œโ”€ flatten@1.0.2
โ”œโ”€ for-in@0.1.6
โ”œโ”€ for-own@0.1.4
โ”œโ”€ foreachasync@3.0.0
โ”œโ”€ forever-agent@0.6.1
โ”œโ”€ form-data@2.1.1
โ”œโ”€ forwarded@0.1.0
โ”œโ”€ fresh@0.3.0
โ”œโ”€ from@0.1.3
โ”œโ”€ fs.realpath@1.0.0
โ”œโ”€ fsevents@1.0.15
โ”œโ”€ fstream-ignore@1.0.5
โ”œโ”€ fstream@1.0.10
โ”œโ”€ function-bind@1.1.0
โ”œโ”€ gauge@1.2.7
โ”œโ”€ generate-function@2.0.0
โ”œโ”€ generate-object-property@1.2.0
โ”œโ”€ get-stdin@4.0.1
โ”œโ”€ getpass@0.1.6
โ”‚  โ””โ”€ assert-plus@1.0.0
โ”œโ”€ git-head@1.15.0
โ”œโ”€ git-refs@1.1.3
โ”œโ”€ github-url-from-git@1.4.0
โ”œโ”€ github-url-from-username-repo@1.0.2
โ”œโ”€ github@0.2.4
โ”‚  โ””โ”€ mime@1.3.4
โ”œโ”€ glob-base@0.3.0
โ”‚  โ””โ”€ is-glob@2.0.1
โ”œโ”€ glob-parent@2.0.0
โ”‚  โ””โ”€ is-glob@2.0.1
โ”œโ”€ glob@7.1.1
โ”œโ”€ globals@9.12.0
โ”œโ”€ globby@5.0.0
โ”œโ”€ graceful-fs@4.1.10
โ”œโ”€ graceful-readlink@1.0.1
โ”œโ”€ har-validator@2.0.6
โ”œโ”€ has-ansi@2.0.0
โ”œโ”€ has-color@0.1.7
โ”œโ”€ has-flag@1.0.0
โ”œโ”€ has-unicode@2.0.1
โ”œโ”€ has@1.0.1
โ”œโ”€ hash.js@1.0.3
โ”œโ”€ hawk@3.1.3
โ”œโ”€ he@1.1.0
โ”œโ”€ header-case@1.0.0
โ”œโ”€ hoek@2.16.3
โ”œโ”€ home-or-tmp@2.0.0
โ”œโ”€ hosted-git-info@2.1.5
โ”œโ”€ html-comment-regex@1.1.1
โ”œโ”€ html-loader@0.4.4
โ”‚  โ”œโ”€ async@0.2.10
โ”‚  โ”œโ”€ html-minifier@3.1.0
โ”‚  โ””โ”€ uglify-js@2.7.4
โ”œโ”€ html-minifier@2.1.7
โ”œโ”€ html-webpack-plugin@2.22.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ htmlparser2@3.8.3
โ”‚  โ”œโ”€ domelementtype@1.3.0
โ”‚  โ”œโ”€ domutils@1.5.1
โ”‚  โ”œโ”€ entities@1.0.0
โ”‚  โ”œโ”€ isarray@0.0.1
โ”‚  โ””โ”€ readable-stream@1.1.13
โ”œโ”€ http-browserify@1.7.0
โ”œโ”€ http-errors@1.5.0
โ”‚  โ””โ”€ inherits@2.0.1
โ”œโ”€ http-proxy-middleware@0.17.2
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ http-proxy@1.15.2
โ”œโ”€ http-signature@1.1.1
โ”œโ”€ https-browserify@0.0.1
โ”œโ”€ icss-replace-symbols@1.0.2
โ”œโ”€ ieee754@1.1.8
โ”œโ”€ ignore@3.2.0
โ”œโ”€ image-size@0.3.5
โ”œโ”€ imurmurhash@0.1.4
โ”œโ”€ indent-string@2.1.0
โ”œโ”€ indexes-of@1.0.1
โ”œโ”€ indexof@0.0.1
โ”œโ”€ inflight@1.0.6
โ”œโ”€ inherits@2.0.3
โ”œโ”€ ini@1.3.4
โ”œโ”€ inquirer@0.12.0
โ”‚  โ””โ”€ lodash@4.16.6
โ”œโ”€ interpret@0.6.6
โ”œโ”€ invariant@2.2.1
โ”œโ”€ ipaddr.js@1.1.1
โ”œโ”€ is-absolute-url@2.0.0
โ”œโ”€ is-absolute@0.2.6
โ”œโ”€ is-arrayish@0.2.1
โ”œโ”€ is-binary-path@1.0.1
โ”œโ”€ is-buffer@1.1.4
โ”œโ”€ is-builtin-module@1.0.0
โ”œโ”€ is-dotfile@1.0.2
โ”œโ”€ is-equal-shallow@0.1.3
โ”œโ”€ is-extendable@0.1.1
โ”œโ”€ is-extglob@1.0.0
โ”œโ”€ is-finite@1.0.2
โ”œโ”€ is-fullwidth-code-point@1.0.0
โ”œโ”€ is-glob@3.1.0
โ”‚  โ””โ”€ is-extglob@2.1.0
โ”œโ”€ is-lower-case@1.1.3
โ”œโ”€ is-my-json-valid@2.15.0
โ”œโ”€ is-number@2.1.0
โ”œโ”€ is-path-cwd@1.0.0
โ”œโ”€ is-path-in-cwd@1.0.0
โ”œโ”€ is-path-inside@1.0.0
โ”œโ”€ is-plain-obj@1.1.0
โ”œโ”€ is-posix-bracket@0.1.1
โ”œโ”€ is-primitive@2.0.0
โ”œโ”€ is-promise@2.1.0
โ”œโ”€ is-property@1.0.2
โ”œโ”€ is-relative@0.2.1
โ”œโ”€ is-resolvable@1.0.0
โ”œโ”€ is-svg@2.0.1
โ”œโ”€ is-typedarray@1.0.0
โ”œโ”€ is-unc-path@0.1.1
โ”œโ”€ is-upper-case@1.1.2
โ”œโ”€ is-utf8@0.2.1
โ”œโ”€ is-windows@0.2.0
โ”œโ”€ isarray@1.0.0
โ”œโ”€ isobject@2.1.0
โ”œโ”€ isstream@0.1.2
โ”œโ”€ jodid25519@1.0.2
โ”œโ”€ js-base64@2.1.9
โ”œโ”€ js-tokens@2.0.0
โ”œโ”€ js-yaml@3.6.1
โ”œโ”€ jsbn@0.1.0
โ”œโ”€ jsesc@1.3.0
โ”œโ”€ json-loader@0.5.4
โ”œโ”€ json-schema@0.2.3
โ”œโ”€ json-stable-stringify@1.0.1
โ”œโ”€ json-stringify-safe@5.0.1
โ”œโ”€ json3@3.3.2
โ”œโ”€ json5@0.4.0
โ”œโ”€ jsonify@0.0.0
โ”œโ”€ jsonpointer@4.0.0
โ”œโ”€ jsprim@1.3.1
โ”œโ”€ jsx-ast-utils@1.3.3
โ”œโ”€ kind-of@3.0.4
โ”œโ”€ kw-web-suite@2.2.1
โ”œโ”€ lazy-cache@1.0.4
โ”œโ”€ levn@0.3.0
โ”œโ”€ load-json-file@1.1.0
โ”‚  โ””โ”€ strip-bom@2.0.0
โ”œโ”€ loader-utils@0.2.16
โ”‚  โ””โ”€ json5@0.5.0
โ”œโ”€ lodash._baseassign@3.2.0
โ”œโ”€ lodash._basecopy@3.0.1
โ”œโ”€ lodash._baseget@3.7.2
โ”œโ”€ lodash._bindcallback@3.0.1
โ”œโ”€ lodash._createassigner@3.1.1
โ”œโ”€ lodash._createcompounder@3.0.0
โ”œโ”€ lodash._getnative@3.9.1
โ”œโ”€ lodash._isiterateecall@3.0.9
โ”œโ”€ lodash._root@3.0.1
โ”œโ”€ lodash._topath@3.8.1
โ”œโ”€ lodash.assign@3.2.0
โ”œโ”€ lodash.camelcase@3.0.1
โ”œโ”€ lodash.cond@4.5.2
โ”œโ”€ lodash.deburr@3.2.0
โ”œโ”€ lodash.endswith@4.2.1
โ”œโ”€ lodash.find@4.6.0
โ”œโ”€ lodash.findindex@4.6.0
โ”œโ”€ lodash.get@3.7.0
โ”œโ”€ lodash.indexof@4.0.5
โ”œโ”€ lodash.isarguments@3.1.0
โ”œโ”€ lodash.isarray@3.0.4
โ”œโ”€ lodash.keys@3.1.2
โ”œโ”€ lodash.map@4.6.0
โ”œโ”€ lodash.pad@4.5.1
โ”œโ”€ lodash.padend@4.6.1
โ”œโ”€ lodash.padstart@4.6.1
โ”œโ”€ lodash.pickby@4.6.0
โ”œโ”€ lodash.restparam@3.6.1
โ”œโ”€ lodash.words@3.2.0
โ”œโ”€ lodash@3.10.1
โ”œโ”€ longest@1.0.1
โ”œโ”€ loose-envify@1.3.0
โ”œโ”€ loud-rejection@1.6.0
โ”œโ”€ lower-case-first@1.0.2
โ”œโ”€ lower-case@1.1.3
โ”œโ”€ macaddress@0.2.8
โ”œโ”€ map-obj@1.0.1
โ”œโ”€ map-stream@0.1.0
โ”œโ”€ math-expression-evaluator@1.2.14
โ”œโ”€ media-typer@0.3.0
โ”œโ”€ memory-fs@0.3.0
โ”œโ”€ meow@3.7.0
โ”‚  โ””โ”€ normalize-package-data@2.3.5
โ”œโ”€ merge-descriptors@1.0.1
โ”œโ”€ merge@1.2.0
โ”œโ”€ methods@1.1.2
โ”œโ”€ micromatch@2.3.11
โ”‚  โ””โ”€ is-glob@2.0.1
โ”œโ”€ miller-rabin@4.0.0
โ”œโ”€ mime-db@1.24.0
โ”œโ”€ mime-types@2.1.12
โ”œโ”€ mime@1.2.11
โ”œโ”€ minimalistic-assert@1.0.0
โ”œโ”€ minimatch@3.0.3
โ”œโ”€ minimist@1.2.0
โ”œโ”€ mkdirp@0.5.1
โ”‚  โ””โ”€ minimist@0.0.8
โ”œโ”€ ms@0.7.1
โ”œโ”€ mute-stream@0.0.6
โ”œโ”€ nan@2.4.0
โ”œโ”€ natural-compare@1.4.0
โ”œโ”€ ncname@1.0.0
โ”œโ”€ negotiator@0.6.1
โ”œโ”€ nerf-dart@1.0.0
โ”œโ”€ no-case@2.3.0
โ”œโ”€ node-libs-browser@1.0.0
โ”œโ”€ node-pre-gyp@0.6.31
โ”‚  โ”œโ”€ are-we-there-yet@1.1.2
โ”‚  โ”œโ”€ gauge@2.6.0
โ”‚  โ””โ”€ npmlog@4.0.0
โ”œโ”€ node-uuid@1.4.7
โ”œโ”€ nopt@3.0.6
โ”œโ”€ normalize-package-data@1.0.3
โ”‚  โ””โ”€ semver@4.3.6
โ”œโ”€ normalize-path@2.0.1
โ”œโ”€ normalize-range@0.1.2
โ”œโ”€ normalize-url@1.7.0
โ”œโ”€ npm-package-arg@4.2.0
โ”œโ”€ npm-registry-client@7.3.0
โ”‚  โ”œโ”€ are-we-there-yet@1.1.2
โ”‚  โ”œโ”€ gauge@2.6.0
โ”‚  โ”œโ”€ normalize-package-data@2.3.5
โ”‚  โ””โ”€ npmlog@3.1.2
โ”œโ”€ npmconf@2.1.2
โ”‚  โ”œโ”€ once@1.3.3
โ”‚  โ””โ”€ semver@4.3.6
โ”œโ”€ npmlog@1.2.1
โ”œโ”€ nth-check@1.0.1
โ”œโ”€ num2fraction@1.2.2
โ”œโ”€ number-is-nan@1.0.1
โ”œโ”€ oauth-sign@0.8.2
โ”œโ”€ object-assign@4.1.0
โ”œโ”€ object.omit@2.0.1
โ”œโ”€ on-finished@2.3.0
โ”œโ”€ on-headers@1.0.1
โ”œโ”€ once@1.4.0
โ”œโ”€ onetime@1.1.0
โ”œโ”€ open@0.0.5
โ”œโ”€ optimist@0.6.1
โ”‚  โ””โ”€ minimist@0.0.10
โ”œโ”€ optionator@0.8.2
โ”‚  โ””โ”€ wordwrap@1.0.0
โ”œโ”€ original@1.0.0
โ”‚  โ””โ”€ url-parse@1.0.5
โ”œโ”€ os-browserify@0.2.1
โ”œโ”€ os-homedir@1.0.2
โ”œโ”€ os-shim@0.1.3
โ”œโ”€ os-tmpdir@1.0.2
โ”œโ”€ osenv@0.1.3
โ”œโ”€ pad-right@0.2.2
โ”œโ”€ pako@0.2.9
โ”œโ”€ param-case@2.1.0
โ”œโ”€ parse-asn1@5.0.0
โ”œโ”€ parse-github-repo-url@1.3.0
โ”œโ”€ parse-glob@3.0.4
โ”‚  โ””โ”€ is-glob@2.0.1
โ”œโ”€ parse-json@2.2.0
โ”œโ”€ parseurl@1.3.1
โ”œโ”€ pascal-case@2.0.0
โ”œโ”€ path-browserify@0.0.0
โ”œโ”€ path-case@2.1.0
โ”œโ”€ path-exists@1.0.0
โ”œโ”€ path-is-absolute@1.0.1
โ”œโ”€ path-is-inside@1.0.2
โ”œโ”€ path-object@2.3.0
โ”œโ”€ path-to-regexp@0.1.7
โ”œโ”€ path-type@1.1.0
โ”œโ”€ pause-stream@0.0.11
โ”œโ”€ pbkdf2-compat@2.0.1
โ”œโ”€ pbkdf2@3.0.9
โ”œโ”€ pify@2.3.0
โ”œโ”€ pinkie-promise@2.0.1
โ”œโ”€ pinkie@2.0.4
โ”œโ”€ pkg-dir@1.0.0
โ”œโ”€ pkg-up@1.0.0
โ”œโ”€ pluralize@1.2.1
โ”œโ”€ postcss-calc@5.3.1
โ”œโ”€ postcss-colormin@2.2.1
โ”œโ”€ postcss-convert-values@2.4.1
โ”œโ”€ postcss-discard-comments@2.0.4
โ”œโ”€ postcss-discard-duplicates@2.0.1
โ”œโ”€ postcss-discard-empty@2.1.0
โ”œโ”€ postcss-discard-overridden@0.1.1
โ”œโ”€ postcss-discard-unused@2.2.2
โ”œโ”€ postcss-filter-plugins@2.0.2
โ”œโ”€ postcss-loader@0.13.0
โ”œโ”€ postcss-merge-idents@2.1.7
โ”œโ”€ postcss-merge-longhand@2.0.1
โ”œโ”€ postcss-merge-rules@2.0.10
โ”œโ”€ postcss-message-helpers@2.0.0
โ”œโ”€ postcss-minify-font-values@1.0.5
โ”œโ”€ postcss-minify-gradients@1.0.5
โ”œโ”€ postcss-minify-params@1.0.5
โ”œโ”€ postcss-minify-selectors@2.0.5
โ”œโ”€ postcss-modules-extract-imports@1.0.1
โ”œโ”€ postcss-modules-local-by-default@1.1.1
โ”œโ”€ postcss-modules-scope@1.0.2
โ”œโ”€ postcss-modules-values@1.2.2
โ”œโ”€ postcss-normalize-charset@1.1.0
โ”œโ”€ postcss-normalize-url@3.0.7
โ”œโ”€ postcss-ordered-values@2.2.2
โ”œโ”€ postcss-reduce-idents@2.3.1
โ”œโ”€ postcss-reduce-initial@1.0.0
โ”œโ”€ postcss-reduce-transforms@1.0.4
โ”œโ”€ postcss-selector-parser@2.2.1
โ”œโ”€ postcss-svgo@2.1.5
โ”œโ”€ postcss-unique-selectors@2.0.2
โ”œโ”€ postcss-value-parser@3.3.0
โ”œโ”€ postcss-zindex@2.1.1
โ”œโ”€ postcss@5.2.5
โ”œโ”€ prelude-ls@1.1.2
โ”œโ”€ prepend-http@1.0.4
โ”œโ”€ preserve@0.2.0
โ”œโ”€ pretty-error@2.0.2
โ”œโ”€ private@0.1.6
โ”œโ”€ process-nextick-args@1.0.7
โ”œโ”€ process@0.11.9
โ”œโ”€ progress@1.1.8
โ”œโ”€ proto-list@1.2.4
โ”œโ”€ proxy-addr@1.1.2
โ”œโ”€ prr@0.0.0
โ”œโ”€ public-encrypt@4.0.0
โ”œโ”€ punycode@1.4.1
โ”œโ”€ q@1.4.1
โ”œโ”€ qs@6.2.0
โ”œโ”€ query-string@4.2.3
โ”œโ”€ querystring-es3@0.2.1
โ”œโ”€ querystring@0.2.0
โ”œโ”€ querystringify@0.0.4
โ”œโ”€ randomatic@1.1.5
โ”œโ”€ randombytes@2.0.3
โ”œโ”€ range-parser@1.2.0
โ”œโ”€ rc@1.1.6
โ”œโ”€ read-pkg-up@1.0.1
โ”œโ”€ read-pkg@1.1.0
โ”‚  โ””โ”€ normalize-package-data@2.3.5
โ”œโ”€ readable-stream@2.1.5
โ”œโ”€ readdirp@2.1.0
โ”œโ”€ readline2@1.0.1
โ”‚  โ””โ”€ mute-stream@0.0.5
โ”œโ”€ recast@0.11.15
โ”‚  โ””โ”€ esprima@3.1.1
โ”œโ”€ rechoir@0.6.2
โ”œโ”€ redent@1.0.0
โ”œโ”€ reduce-css-calc@1.3.0
โ”œโ”€ reduce-function-call@1.0.1
โ”‚  โ””โ”€ balanced-match@0.1.0
โ”œโ”€ regenerate@1.3.1
โ”œโ”€ regenerator-runtime@0.9.5
โ”œโ”€ regex-cache@0.4.3
โ”œโ”€ regexpu-core@1.0.0
โ”œโ”€ regjsgen@0.2.0
โ”œโ”€ regjsparser@0.1.5
โ”‚  โ””โ”€ jsesc@0.5.0
โ”œโ”€ relateurl@0.2.7
โ”œโ”€ renderkid@2.0.0
โ”‚  โ”œโ”€ css-select@1.2.0
โ”‚  โ”‚  โ””โ”€ domutils@1.5.1
โ”‚  โ”œโ”€ css-what@2.1.0
โ”‚  โ”œโ”€ domelementtype@1.3.0
โ”‚  โ”œโ”€ domhandler@2.1.0
โ”‚  โ”œโ”€ domutils@1.1.6
โ”‚  โ”œโ”€ htmlparser2@3.3.0
โ”‚  โ”œโ”€ isarray@0.0.1
โ”‚  โ”œโ”€ readable-stream@1.0.34
โ”‚  โ””โ”€ utila@0.3.3
โ”œโ”€ repeat-element@1.1.2
โ”œโ”€ repeat-string@1.6.1
โ”œโ”€ repeating@2.0.1
โ”œโ”€ request@2.77.0
โ”‚  โ””โ”€ qs@6.3.0
โ”œโ”€ require-relative@0.8.7
โ”œโ”€ require-uncached@1.0.2
โ”œโ”€ requires-port@1.0.0
โ”œโ”€ resolve-from@1.0.1
โ”œโ”€ resolve@1.1.7
โ”œโ”€ restore-cursor@1.0.1
โ”œโ”€ retry@0.10.0
โ”œโ”€ right-align@0.1.3
โ”œโ”€ right-pad@1.0.1
โ”œโ”€ rimraf@2.5.4
โ”œโ”€ ripemd160@1.0.1
โ”œโ”€ run-async@0.1.0
โ”œโ”€ run-auto@1.1.3
โ”œโ”€ run-series@1.1.4
โ”œโ”€ rx-lite@3.1.2
โ”œโ”€ rx@4.1.0
โ”œโ”€ sax@1.2.1
โ”œโ”€ semantic-release@4.3.5
โ”œโ”€ semver@5.3.0
โ”œโ”€ send@0.14.1
โ”‚  โ””โ”€ mime@1.3.4
โ”œโ”€ sentence-case@2.1.0
โ”œโ”€ serve-index@1.8.0
โ”œโ”€ serve-static@1.11.1
โ”œโ”€ set-blocking@2.0.0
โ”œโ”€ set-immediate-shim@1.0.1
โ”œโ”€ setprototypeof@1.0.1
โ”œโ”€ sha.js@2.4.5
โ”œโ”€ shader-loader@1.3.0
โ”œโ”€ shebang-regex@1.0.0
โ”œโ”€ shelljs@0.7.4
โ”‚  โ””โ”€ interpret@1.0.1
โ”œโ”€ signal-exit@3.0.1
โ”œโ”€ slash@1.0.0
โ”œโ”€ slice-ansi@0.0.4
โ”œโ”€ slide@1.1.6
โ”œโ”€ snake-case@2.1.0
โ”œโ”€ sniffr@1.1.4
โ”œโ”€ sntp@1.0.9
โ”œโ”€ sockjs-client@1.1.1
โ”‚  โ””โ”€ faye-websocket@0.11.0
โ”œโ”€ sockjs@0.3.18
โ”œโ”€ sort-keys@1.1.2
โ”œโ”€ source-list-map@0.1.6
โ”œโ”€ source-map-support@0.4.6
โ”œโ”€ source-map@0.5.6
โ”œโ”€ spawn-sync@1.0.15
โ”œโ”€ spdx-correct@1.0.2
โ”œโ”€ spdx-expression-parse@1.0.4
โ”œโ”€ spdx-license-ids@1.2.2
โ”œโ”€ split@0.3.3
โ”œโ”€ sprintf-js@1.0.3
โ”œโ”€ sshpk@1.10.1
โ”‚  โ””โ”€ assert-plus@1.0.0
โ”œโ”€ statuses@1.3.0
โ”œโ”€ stream-browserify@2.0.1
โ”œโ”€ stream-cache@0.0.2
โ”œโ”€ stream-combiner@0.0.4
โ”œโ”€ strict-uri-encode@1.1.0
โ”œโ”€ string_decoder@0.10.31
โ”œโ”€ string-replace-loader@1.0.5
โ”œโ”€ string-width@1.0.2
โ”œโ”€ stringstream@0.0.5
โ”œโ”€ strip-ansi@3.0.1
โ”œโ”€ strip-bom@3.0.0
โ”œโ”€ strip-indent@1.0.1
โ”œโ”€ strip-json-comments@1.0.4
โ”œโ”€ style-loader@0.13.1
โ”œโ”€ supports-color@3.1.2
โ”œโ”€ svg-sprite-loader@0.0.29
โ”œโ”€ svgo@0.7.1
โ”œโ”€ swap-case@1.1.2
โ”œโ”€ table@3.8.3
โ”‚  โ”œโ”€ is-fullwidth-code-point@2.0.0
โ”‚  โ”œโ”€ lodash@4.16.6
โ”‚  โ””โ”€ string-width@2.0.0
โ”œโ”€ tapable@0.1.10
โ”œโ”€ tar-pack@3.3.0
โ”‚  โ”œโ”€ once@1.3.3
โ”‚  โ””โ”€ uid-number@0.0.6
โ”œโ”€ tar@2.2.1
โ”œโ”€ text-table@0.2.0
โ”œโ”€ through@2.3.8
โ”œโ”€ timers-browserify@1.4.2
โ”œโ”€ title-case@2.1.0
โ”œโ”€ tmp@0.0.29
โ”œโ”€ to-fast-properties@1.0.2
โ”œโ”€ toposort@1.0.0
โ”œโ”€ tough-cookie@2.3.2
โ”œโ”€ trim-newlines@1.0.0
โ”œโ”€ tryit@1.0.3
โ”œโ”€ tty-browserify@0.0.0
โ”œโ”€ tunnel-agent@0.4.3
โ”œโ”€ tweetnacl@0.14.3
โ”œโ”€ type-check@0.3.2
โ”œโ”€ type-is@1.6.13
โ”œโ”€ typedarray@0.0.6
โ”œโ”€ uglify-js@2.6.4
โ”‚  โ””โ”€ async@0.2.10
โ”œโ”€ uglify-to-browserify@1.0.2
โ”œโ”€ uid-number@0.0.5
โ”œโ”€ unc-path-regex@0.1.2
โ”œโ”€ uniq@1.0.1
โ”œโ”€ uniqid@4.1.0
โ”œโ”€ uniqs@2.0.0
โ”œโ”€ unpipe@1.0.0
โ”œโ”€ upper-case-first@1.1.2
โ”œโ”€ upper-case@1.1.3
โ”œโ”€ url-loader@0.5.7
โ”œโ”€ url-parse@1.1.7
โ”œโ”€ url@0.11.0
โ”‚  โ””โ”€ punycode@1.3.2
โ”œโ”€ user-home@2.0.0
โ”œโ”€ util-deprecate@1.0.2
โ”œโ”€ util@0.10.3
โ”‚  โ””โ”€ inherits@2.0.1
โ”œโ”€ utila@0.4.0
โ”œโ”€ utils-merge@1.0.0
โ”œโ”€ uuid@2.0.3
โ”œโ”€ validate-npm-package-license@3.0.1
โ”œโ”€ vary@1.1.0
โ”œโ”€ vendors@1.0.1
โ”œโ”€ verror@1.3.6
โ”œโ”€ vm-browserify@0.0.4
โ”œโ”€ walk@2.3.9
โ”œโ”€ watchpack@0.2.9
โ”‚  โ””โ”€ async@0.9.2
โ”œโ”€ webpack-core@0.6.8
โ”‚  โ””โ”€ source-map@0.4.4
โ”œโ”€ webpack-dev-middleware@1.8.4
โ”‚  โ””โ”€ mime@1.3.4
โ”œโ”€ webpack-dev-server@1.16.2
โ”œโ”€ webpack@1.13.2
โ”‚  โ”œโ”€ constants-browserify@0.0.1
โ”‚  โ”œโ”€ crypto-browserify@3.2.8
โ”‚  โ”œโ”€ https-browserify@0.0.0
โ”‚  โ”œโ”€ isarray@0.0.1
โ”‚  โ”œโ”€ node-libs-browser@0.6.0
โ”‚  โ”œโ”€ os-browserify@0.1.2
โ”‚  โ”œโ”€ readable-stream@1.1.14
โ”‚  โ”œโ”€ ripemd160@0.2.0
โ”‚  โ”œโ”€ sha.js@2.2.6
โ”‚  โ”œโ”€ stream-browserify@1.0.0
โ”‚  โ””โ”€ url@0.10.3
โ”‚  โ”‚  โ””โ”€ punycode@1.3.2
โ”œโ”€ websocket-driver@0.6.5
โ”œโ”€ websocket-extensions@0.1.1
โ”œโ”€ whet.extend@0.9.9
โ”œโ”€ wide-align@1.1.0
โ”œโ”€ window-size@0.1.0
โ”œโ”€ word-wrap@1.1.0
โ”œโ”€ wordwrap@0.0.3
โ”œโ”€ wrappy@1.0.2
โ”œโ”€ write@0.2.1
โ”œโ”€ xml-char-classes@1.0.0
โ”œโ”€ xtend@4.0.1
โ””โ”€ yargs@3.10.0
โœจ  Done in 15.29s.

$ ls node_modules/.bin/
fix-kw-web-suite

$ ls node_modules/kw-web-suite/node_modules/.bin/
commitizen      eslint          git-cz          semantic-release    shjs            webpack         webpack-dev-server

@jourdain The PR that fixed this just landed an hour ago and there hasn't been a release, so the current version is still going to be broken until a new release is cut.

Sounds good, I wasn't sure when I should be able to test the new version. So I'm guessing yarn@0.16.2 ?

1220 was reverted. Shouldn't this issue be re-opened?

As of yarn 17.8 nested exes are not installing in the root ./node_modules/.bin

I've tried the steps to reproduce that bug with yarn@0.17.8 and I confirm that we still see the same behavior.

This should be reopen.

I'll reopen this since the PR was reverted.

Sorry but this bug is still present in last nightly-build : 0.19.0

Scenario for reproducing the bug :

The file node_modules/.bin/ngd is not present

The file node_modules/.bin/ngd is present

There's an open (but possibly abandoned) PR for a new fix: #2053

Any progress on this issue? yarn@0.24.6 still have this problem.

@zyy7259 not AFAIK. Would you like to investigate with the latest version on master and submit a pull request? We'd assist you in the process if you're interested in submitting a PR.

@BYK AFAIK this was actually fixed in #3310 back in may, and is working for me with v0.27.5, can this be closed?

Seems to be fine with me now, I would say you can close the issue. Thanks for taking care of it!

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12.6
BuildVersion:   16G29
$ node --version
v8.0.0
$ yarn --version
0.27.5
Was this page helpful?
0 / 5 - 0 ratings