npm / npm

This repository is moving to: https://github.com/npm/cli
http://npm.community
17.54k stars 3.02k forks source link

npm throw `TypeError: opts.mkdirpAsync is not a function` when I run `npm link` #17129

Open huan opened 7 years ago

huan commented 7 years ago

I'm opening this issue because:

What's going wrong?

npm throw TypeError: opts.mkdirpAsync is not a function when I run npm link

1446 info lifecycle undefined~preuninstall: undefined
1447 silly lifecycle undefined~preuninstall: no script for preuninstall, continuing
1448 info lifecycle undefined~uninstall: undefined
1449 silly lifecycle undefined~uninstall: no script for uninstall, continuing
1450 verbose unbuild rmStuff undefined 'from' '/wechaty/node_modules'
1451 info lifecycle undefined~postuninstall: undefined
1452 silly lifecycle undefined~postuninstall: no script for postuninstall, continuing
1453 silly move move existing destination node_modules away /wechaty/node_modules/ts-node/node_modules/yn/node_modules
1454 silly move remove existing destination /wechaty/node_modules/ts-node/node_modules/yn
1455 silly move make sure destination parent exists /wechaty/node_modules/ts-node/node_modules
1456 silly move move source node_modules away /wechaty/node_modules/yn/node_modules
1457 silly move move module dir to final dest /wechaty/node_modules/yn /wechaty/node_modules/ts-node/node_modules/yn
1458 verbose unlock done using /root/.npm/_locks/staging-1341af9a78a6c413.lock for /wechaty/node_modules/.staging
1459 verbose stack TypeError: opts.mkdirpAsync is not a function
1459 verbose stack     at recurseDir (/usr/lib/node_modules/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js:130:15)
1459 verbose stack     at /usr/lib/node_modules/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js:104:14
1459 verbose stack     at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
1459 verbose stack     at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
1459 verbose stack     at Promise._settlePromise (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
1459 verbose stack     at Promise._settlePromise0 (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
1459 verbose stack     at Promise._settlePromises (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
1459 verbose stack     at Async._drainQueue (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:133:16)
1459 verbose stack     at Async._drainQueues (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
1459 verbose stack     at Immediate.Async.drainQueues (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
1459 verbose stack     at runCallback (timers.js:800:20)
1459 verbose stack     at tryOnImmediate (timers.js:762:5)
1459 verbose stack     at processImmediate [as _immediateCallback] (timers.js:733:5)
1460 verbose cwd /wechaty
1461 verbose Linux 4.10.0-22-generic
1462 verbose argv "/usr/bin/node" "/usr/bin/npm" "link"
1463 verbose node v8.1.0
1464 verbose npm  v5.0.3
1465 error opts.mkdirpAsync is not a function
1466 verbose exit [ 1, true ]

How can the CLI team reproduce the problem?

This is only occur when I build my Docker Image.

Dockerfile: https://github.com/Chatie/wechaty/blob/270da645cb3ad470f7055c94d367cc0fa25ac8f2/Dockerfile#L46 Buildlog: https://circleci.com/gh/Chatie/wechaty/1812?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link

supporting information:

gngeorgiev commented 7 years ago

I get the same error when I run npm i -g ./. Here's the full npm error log:

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'i', '-g', './' ]
2 info using npm@5.0.3
3 info using node@v8.1.0
4 verbose npm-session fa8533abdcdfbe3f
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 silly pacote directory manifest for undefined@file: fetched in 23ms
8 silly install loadIdealTree
9 silly install cloneCurrentTreeToIdealTree
10 silly install loadShrinkwrap
11 silly install loadAllDepsIntoIdealTree
12 silly resolveWithNewModule audiotic-core@0.0.24 checking installable status
13 http fetch GET 200 https://registry.npmjs.org/string_decoder 280ms
14 silly pacote range manifest for string_decoder@^0.10.31 fetched in 312ms
15 silly resolveWithNewModule string_decoder@0.10.31 checking installable status
16 silly pacote range manifest for string_decoder@~1.0.0 fetched in 3ms
17 silly resolveWithNewModule string_decoder@1.0.2 checking installable status
18 silly pacote range manifest for string_decoder@~1.0.0 fetched in 1ms
19 silly resolveWithNewModule string_decoder@1.0.2 checking installable status
20 silly currentTree lib
21 silly idealTree lib
21 silly idealTree └─┬ audiotic-core@0.0.24
21 silly idealTree   ├── @ava/babel-preset-stage-4@1.1.0
21 silly idealTree   ├── @ava/babel-preset-transform-test-files@2.0.1
21 silly idealTree   ├── @ava/pretty-format@1.1.0
21 silly idealTree   ├─┬ abstract-leveldown@0.12.4
21 silly idealTree   │ └── xtend@3.0.0
21 silly idealTree   ├── ajv@4.11.8
21 silly idealTree   ├── ansi-align@1.1.0
21 silly idealTree   ├── ansi-regex@2.1.1
21 silly idealTree   ├── ansi-styles@2.2.1
21 silly idealTree   ├── anymatch@1.3.0
21 silly idealTree   ├── arr-diff@2.0.0
21 silly idealTree   ├── arr-exclude@1.0.0
21 silly idealTree   ├── arr-flatten@1.0.3
21 silly idealTree   ├── array-differ@1.0.0
21 silly idealTree   ├── array-find-index@1.0.2
21 silly idealTree   ├── array-union@1.0.2
21 silly idealTree   ├── array-uniq@1.0.3
21 silly idealTree   ├── array-unique@0.2.1
21 silly idealTree   ├── arrify@1.0.1
21 silly idealTree   ├── asn1.js@4.9.1
21 silly idealTree   ├── asn1@0.2.3
21 silly idealTree   ├── assert-plus@0.2.0
21 silly idealTree   ├── assert@1.4.1
21 silly idealTree   ├── async-each@1.0.1
21 silly idealTree   ├── async@0.9.2
21 silly idealTree   ├── asynckit@0.4.0
21 silly idealTree   ├── auto-bind@1.1.0
21 silly idealTree   ├── ava-init@0.2.0
21 silly idealTree   ├── ava@0.18.2
21 silly idealTree   ├── aws-sign2@0.6.0
21 silly idealTree   ├── aws4@1.6.0
21 silly idealTree   ├── babel-code-frame@6.22.0
21 silly idealTree   ├── babel-core@6.25.0
21 silly idealTree   ├─┬ babel-generator@6.25.0
21 silly idealTree   │ └── jsesc@1.3.0
21 silly idealTree   ├── babel-helper-builder-binary-assignment-operator-visitor@6.24.1
21 silly idealTree   ├── babel-helper-call-delegate@6.24.1
21 silly idealTree   ├── babel-helper-explode-assignable-expression@6.24.1
21 silly idealTree   ├── babel-helper-function-name@6.24.1
21 silly idealTree   ├── babel-helper-get-function-arity@6.24.1
21 silly idealTree   ├── babel-helper-hoist-variables@6.24.1
21 silly idealTree   ├── babel-helper-regex@6.24.1
21 silly idealTree   ├── babel-helper-remap-async-to-generator@6.24.1
21 silly idealTree   ├── babel-helpers@6.24.1
21 silly idealTree   ├── babel-messages@6.23.0
21 silly idealTree   ├── babel-plugin-ava-throws-helper@1.0.0
21 silly idealTree   ├── babel-plugin-check-es2015-constants@6.22.0
21 silly idealTree   ├── babel-plugin-espower@2.3.2
21 silly idealTree   ├── babel-plugin-syntax-async-functions@6.13.0
21 silly idealTree   ├── babel-plugin-syntax-exponentiation-operator@6.13.0
21 silly idealTree   ├── babel-plugin-syntax-trailing-function-commas@6.22.0
21 silly idealTree   ├── babel-plugin-transform-async-to-generator@6.24.1
21 silly idealTree   ├── babel-plugin-transform-es2015-destructuring@6.23.0
21 silly idealTree   ├── babel-plugin-transform-es2015-function-name@6.24.1
21 silly idealTree   ├── babel-plugin-transform-es2015-modules-commonjs@6.24.1
21 silly idealTree   ├── babel-plugin-transform-es2015-parameters@6.24.1
21 silly idealTree   ├── babel-plugin-transform-es2015-spread@6.22.0
21 silly idealTree   ├── babel-plugin-transform-es2015-sticky-regex@6.24.1
21 silly idealTree   ├── babel-plugin-transform-es2015-unicode-regex@6.24.1
21 silly idealTree   ├── babel-plugin-transform-exponentiation-operator@6.24.1
21 silly idealTree   ├── babel-plugin-transform-strict-mode@6.24.1
21 silly idealTree   ├── babel-register@6.24.1
21 silly idealTree   ├── babel-runtime@6.23.0
21 silly idealTree   ├── babel-template@6.25.0
21 silly idealTree   ├── babel-traverse@6.25.0
21 silly idealTree   ├── babel-types@6.25.0
21 silly idealTree   ├── babylon@6.17.3
21 silly idealTree   ├── balanced-match@1.0.0
21 silly idealTree   ├── base64-js@0.0.8
21 silly idealTree   ├── Base64@0.2.1
21 silly idealTree   ├── bcrypt-pbkdf@1.0.1
21 silly idealTree   ├── binary-extensions@1.8.0
21 silly idealTree   ├── bl@0.8.2
21 silly idealTree   ├── bluebird@3.5.0
21 silly idealTree   ├── bn.js@4.11.6
21 silly idealTree   ├── boolbase@1.0.0
21 silly idealTree   ├── boom@2.10.1
21 silly idealTree   ├── boxen@0.6.0
21 silly idealTree   ├── brace-expansion@1.1.8
21 silly idealTree   ├── braces@1.8.5
21 silly idealTree   ├── brorand@1.1.0
21 silly idealTree   ├── browserify-aes@1.0.6
21 silly idealTree   ├── browserify-cipher@1.0.0
21 silly idealTree   ├── browserify-des@1.0.0
21 silly idealTree   ├── browserify-rsa@4.0.1
21 silly idealTree   ├── browserify-sign@4.0.4
21 silly idealTree   ├── browserify-zlib@0.1.4
21 silly idealTree   ├── buf-compare@1.0.1
21 silly idealTree   ├── buffer-xor@1.0.3
21 silly idealTree   ├── buffer@3.6.0
21 silly idealTree   ├── builtin-modules@1.1.1
21 silly idealTree   ├─┬ caching-transform@1.0.1
21 silly idealTree   │ ├── md5-hex@1.3.0
21 silly idealTree   │ └── write-file-atomic@1.3.4
21 silly idealTree   ├── call-matcher@1.0.1
21 silly idealTree   ├── call-signature@0.0.2
21 silly idealTree   ├── camelcase-keys@2.1.0
21 silly idealTree   ├── camelcase@2.1.1
21 silly idealTree   ├── capture-stack-trace@1.0.0
21 silly idealTree   ├── caseless@0.12.0
21 silly idealTree   ├── chalk@1.1.3
21 silly idealTree   ├── cheerio@0.22.0
21 silly idealTree   ├── chokidar@1.7.0
21 silly idealTree   ├── ci-info@1.0.0
21 silly idealTree   ├── cipher-base@1.0.3
21 silly idealTree   ├── clean-stack@1.3.0
21 silly idealTree   ├── clean-yaml-object@0.1.0
21 silly idealTree   ├── cli-boxes@1.0.0
21 silly idealTree   ├── cli-cursor@2.1.0
21 silly idealTree   ├── cli-spinners@1.0.0
21 silly idealTree   ├── cli-truncate@0.2.1
21 silly idealTree   ├── clone@0.1.19
21 silly idealTree   ├─┬ co-with-promise@4.6.0
21 silly idealTree   │ ├── pinkie-promise@1.0.0
21 silly idealTree   │ └── pinkie@1.0.0
21 silly idealTree   ├── co@4.6.0
21 silly idealTree   ├── code-excerpt@2.1.0
21 silly idealTree   ├── code-point-at@1.1.0
21 silly idealTree   ├── combined-stream@1.0.5
21 silly idealTree   ├── commander@2.2.0
21 silly idealTree   ├── common-path-prefix@1.0.0
21 silly idealTree   ├── commondir@1.0.1
21 silly idealTree   ├── concat-map@0.0.1
21 silly idealTree   ├─┬ concat-stream@1.6.0
21 silly idealTree   │ ├── inherits@2.0.3
21 silly idealTree   │ ├── readable-stream@2.2.11
21 silly idealTree   │ └── string_decoder@1.0.2
21 silly idealTree   ├─┬ configstore@2.1.0
21 silly idealTree   │ ├── dot-prop@3.0.0
21 silly idealTree   │ └── write-file-atomic@1.3.4
21 silly idealTree   ├── console-browserify@1.1.0
21 silly idealTree   ├── constants-browserify@0.0.1
21 silly idealTree   ├── convert-source-map@1.5.0
21 silly idealTree   ├── convert-to-spaces@1.0.2
21 silly idealTree   ├── core-assert@0.2.1
21 silly idealTree   ├── core-js@2.4.1
21 silly idealTree   ├── core-util-is@1.0.2
21 silly idealTree   ├── create-ecdh@4.0.0
21 silly idealTree   ├── create-error-class@3.0.2
21 silly idealTree   ├── create-hash@1.1.3
21 silly idealTree   ├── create-hmac@1.1.6
21 silly idealTree   ├── cross-spawn@4.0.2
21 silly idealTree   ├── cryptiles@2.0.5
21 silly idealTree   ├── css-select@1.2.0
21 silly idealTree   ├── css-what@2.1.0
21 silly idealTree   ├── ctype@0.5.3
21 silly idealTree   ├── currently-unhandled@0.4.1
21 silly idealTree   ├─┬ dashdash@1.14.1
21 silly idealTree   │ └── assert-plus@1.0.0
21 silly idealTree   ├── date-now@0.1.4
21 silly idealTree   ├── date-time@0.1.1
21 silly idealTree   ├─┬ debug@2.6.8
21 silly idealTree   │ └── ms@2.0.0
21 silly idealTree   ├── decamelize@1.2.0
21 silly idealTree   ├── deep-equal@1.0.1
21 silly idealTree   ├── deep-extend@0.4.2
21 silly idealTree   ├── deferred-leveldown@0.2.0
21 silly idealTree   ├── delayed-stream@1.0.0
21 silly idealTree   ├── des.js@1.0.0
21 silly idealTree   ├── detect-indent@4.0.0
21 silly idealTree   ├── diff@3.2.0
21 silly idealTree   ├── diffie-hellman@5.0.2
21 silly idealTree   ├── dns.js@1.0.1
21 silly idealTree   ├─┬ dom-serializer@0.1.0
21 silly idealTree   │ └── domelementtype@1.1.3
21 silly idealTree   ├── domain-browser@1.1.7
21 silly idealTree   ├── domelementtype@1.3.0
21 silly idealTree   ├── domhandler@2.4.1
21 silly idealTree   ├── domutils@1.5.1
21 silly idealTree   ├── dot-prop@4.1.1
21 silly idealTree   ├── download-file@0.1.5
21 silly idealTree   ├─┬ duplexer2@0.1.4
21 silly idealTree   │ └── readable-stream@2.2.11
21 silly idealTree   ├── ecc-jsbn@0.1.1
21 silly idealTree   ├── elliptic@6.4.0
21 silly idealTree   ├── empower-core@0.6.2
21 silly idealTree   ├── encoding@0.1.12
21 silly idealTree   ├── entities@1.1.1
21 silly idealTree   ├── equal-length@1.0.1
21 silly idealTree   ├── errno@0.1.4
21 silly idealTree   ├── error-ex@1.3.1
21 silly idealTree   ├── escape-string-regexp@1.0.5
21 silly idealTree   ├─┬ espower-location-detector@1.0.0
21 silly idealTree   │ └── xtend@4.0.1
21 silly idealTree   ├── espurify@1.7.0
21 silly idealTree   ├── estraverse@4.2.0
21 silly idealTree   ├── esutils@2.0.2
21 silly idealTree   ├── events@1.1.1
21 silly idealTree   ├── evp_bytestokey@1.0.0
21 silly idealTree   ├── execa@0.5.1
21 silly idealTree   ├── expand-brackets@0.1.5
21 silly idealTree   ├── expand-range@1.8.2
21 silly idealTree   ├── extend@3.0.1
21 silly idealTree   ├── extglob@0.3.2
21 silly idealTree   ├── extsprintf@1.0.2
21 silly idealTree   ├── figures@2.0.0
21 silly idealTree   ├── filename-regex@2.0.1
21 silly idealTree   ├── fill-range@2.2.3
21 silly idealTree   ├── filled-array@1.1.0
21 silly idealTree   ├── find-cache-dir@0.1.1
21 silly idealTree   ├── find-up@2.1.0
21 silly idealTree   ├── findit@2.0.0
21 silly idealTree   ├── fn-name@2.0.1
21 silly idealTree   ├── for-in@1.0.2
21 silly idealTree   ├── for-own@0.1.5
21 silly idealTree   ├── foreach@2.0.5
21 silly idealTree   ├── forever-agent@0.6.1
21 silly idealTree   ├── form-data@2.1.4
21 silly idealTree   ├── fs-extra@0.22.1
21 silly idealTree   ├── fs.realpath@1.0.0
21 silly idealTree   ├─┬ fsevents@1.1.2
21 silly idealTree   │ ├── abbrev@1.1.0
21 silly idealTree   │ ├── ajv@4.11.8
21 silly idealTree   │ ├── ansi-regex@2.1.1
21 silly idealTree   │ ├── aproba@1.1.1
21 silly idealTree   │ ├── are-we-there-yet@1.1.4
21 silly idealTree   │ ├── asn1@0.2.3
21 silly idealTree   │ ├── assert-plus@0.2.0
21 silly idealTree   │ ├── asynckit@0.4.0
21 silly idealTree   │ ├── aws-sign2@0.6.0
21 silly idealTree   │ ├── aws4@1.6.0
21 silly idealTree   │ ├── balanced-match@0.4.2
21 silly idealTree   │ ├── bcrypt-pbkdf@1.0.1
21 silly idealTree   │ ├── block-stream@0.0.9
21 silly idealTree   │ ├── boom@2.10.1
21 silly idealTree   │ ├── brace-expansion@1.1.7
21 silly idealTree   │ ├── buffer-shims@1.0.0
21 silly idealTree   │ ├── caseless@0.12.0
21 silly idealTree   │ ├── co@4.6.0
21 silly idealTree   │ ├── code-point-at@1.1.0
21 silly idealTree   │ ├── combined-stream@1.0.5
21 silly idealTree   │ ├── concat-map@0.0.1
21 silly idealTree   │ ├── console-control-strings@1.1.0
21 silly idealTree   │ ├── core-util-is@1.0.2
21 silly idealTree   │ ├── cryptiles@2.0.5
21 silly idealTree   │ ├─┬ dashdash@1.14.1
21 silly idealTree   │ │ └── assert-plus@1.0.0
21 silly idealTree   │ ├── debug@2.6.8
21 silly idealTree   │ ├── deep-extend@0.4.2
21 silly idealTree   │ ├── delayed-stream@1.0.0
21 silly idealTree   │ ├── delegates@1.0.0
21 silly idealTree   │ ├── ecc-jsbn@0.1.1
21 silly idealTree   │ ├── extend@3.0.1
21 silly idealTree   │ ├── extsprintf@1.0.2
21 silly idealTree   │ ├── forever-agent@0.6.1
21 silly idealTree   │ ├── form-data@2.1.4
21 silly idealTree   │ ├── fs.realpath@1.0.0
21 silly idealTree   │ ├── fstream-ignore@1.0.5
21 silly idealTree   │ ├── fstream@1.0.11
21 silly idealTree   │ ├── gauge@2.7.4
21 silly idealTree   │ ├─┬ getpass@0.1.7
21 silly idealTree   │ │ └── assert-plus@1.0.0
21 silly idealTree   │ ├── glob@7.1.2
21 silly idealTree   │ ├── graceful-fs@4.1.11
21 silly idealTree   │ ├── har-schema@1.0.5
21 silly idealTree   │ ├── har-validator@4.2.1
21 silly idealTree   │ ├── has-unicode@2.0.1
21 silly idealTree   │ ├── hawk@3.1.3
21 silly idealTree   │ ├── hoek@2.16.3
21 silly idealTree   │ ├── http-signature@1.1.1
21 silly idealTree   │ ├── inflight@1.0.6
21 silly idealTree   │ ├── inherits@2.0.3
21 silly idealTree   │ ├── ini@1.3.4
21 silly idealTree   │ ├── is-fullwidth-code-point@1.0.0
21 silly idealTree   │ ├── is-typedarray@1.0.0
21 silly idealTree   │ ├── isarray@1.0.0
21 silly idealTree   │ ├── isstream@0.1.2
21 silly idealTree   │ ├── jodid25519@1.0.2
21 silly idealTree   │ ├── jsbn@0.1.1
21 silly idealTree   │ ├── json-schema@0.2.3
21 silly idealTree   │ ├── json-stable-stringify@1.0.1
21 silly idealTree   │ ├── json-stringify-safe@5.0.1
21 silly idealTree   │ ├── jsonify@0.0.0
21 silly idealTree   │ ├─┬ jsprim@1.4.0
21 silly idealTree   │ │ └── assert-plus@1.0.0
21 silly idealTree   │ ├── mime-db@1.27.0
21 silly idealTree   │ ├── mime-types@2.1.15
21 silly idealTree   │ ├── minimatch@3.0.4
21 silly idealTree   │ ├── minimist@0.0.8
21 silly idealTree   │ ├── mkdirp@0.5.1
21 silly idealTree   │ ├── ms@2.0.0
21 silly idealTree   │ ├── node-pre-gyp@0.6.36
21 silly idealTree   │ ├── nopt@4.0.1
21 silly idealTree   │ ├── npmlog@4.1.0
21 silly idealTree   │ ├── number-is-nan@1.0.1
21 silly idealTree   │ ├── oauth-sign@0.8.2
21 silly idealTree   │ ├── object-assign@4.1.1
21 silly idealTree   │ ├── once@1.4.0
21 silly idealTree   │ ├── os-homedir@1.0.2
21 silly idealTree   │ ├── os-tmpdir@1.0.2
21 silly idealTree   │ ├── osenv@0.1.4
21 silly idealTree   │ ├── path-is-absolute@1.0.1
21 silly idealTree   │ ├── performance-now@0.2.0
21 silly idealTree   │ ├── process-nextick-args@1.0.7
21 silly idealTree   │ ├── punycode@1.4.1
21 silly idealTree   │ ├── qs@6.4.0
21 silly idealTree   │ ├─┬ rc@1.2.1
21 silly idealTree   │ │ └── minimist@1.2.0
21 silly idealTree   │ ├── readable-stream@2.2.9
21 silly idealTree   │ ├── request@2.81.0
21 silly idealTree   │ ├── rimraf@2.6.1
21 silly idealTree   │ ├── safe-buffer@5.0.1
21 silly idealTree   │ ├── semver@5.3.0
21 silly idealTree   │ ├── set-blocking@2.0.0
21 silly idealTree   │ ├── signal-exit@3.0.2
21 silly idealTree   │ ├── sntp@1.0.9
21 silly idealTree   │ ├─┬ sshpk@1.13.0
21 silly idealTree   │ │ └── assert-plus@1.0.0
21 silly idealTree   │ ├── string_decoder@1.0.1
21 silly idealTree   │ ├── string-width@1.0.2
21 silly idealTree   │ ├── stringstream@0.0.5
21 silly idealTree   │ ├── strip-ansi@3.0.1
21 silly idealTree   │ ├── strip-json-comments@2.0.1
21 silly idealTree   │ ├── tar-pack@3.4.0
21 silly idealTree   │ ├── tar@2.2.1
21 silly idealTree   │ ├── tough-cookie@2.3.2
21 silly idealTree   │ ├── tunnel-agent@0.6.0
21 silly idealTree   │ ├── tweetnacl@0.14.5
21 silly idealTree   │ ├── uid-number@0.0.6
21 silly idealTree   │ ├── util-deprecate@1.0.2
21 silly idealTree   │ ├── uuid@3.0.1
21 silly idealTree   │ ├── verror@1.3.6
21 silly idealTree   │ ├── wide-align@1.1.2
21 silly idealTree   │ └── wrappy@1.0.2
21 silly idealTree   ├── fwd-stream@1.0.4
21 silly idealTree   ├── get-port@2.1.0
21 silly idealTree   ├── get-stdin@4.0.1
21 silly idealTree   ├── get-stream@2.3.1
21 silly idealTree   ├── get-youtube-id@1.0.0
21 silly idealTree   ├─┬ getpass@0.1.7
21 silly idealTree   │ └── assert-plus@1.0.0
21 silly idealTree   ├── glob-base@0.3.0
21 silly idealTree   ├── glob-parent@2.0.0
21 silly idealTree   ├── glob@7.1.2
21 silly idealTree   ├── globals@9.18.0
21 silly idealTree   ├── globby@6.1.0
21 silly idealTree   ├─┬ goo.gl@0.1.4
21 silly idealTree   │ ├── asn1@0.1.11
21 silly idealTree   │ ├── assert-plus@0.1.5
21 silly idealTree   │ ├── aws-sign2@0.5.0
21 silly idealTree   │ ├── boom@0.4.2
21 silly idealTree   │ ├── combined-stream@0.0.7
21 silly idealTree   │ ├── cryptiles@0.2.2
21 silly idealTree   │ ├── delayed-stream@0.0.5
21 silly idealTree   │ ├── forever-agent@0.5.2
21 silly idealTree   │ ├── form-data@0.1.4
21 silly idealTree   │ ├── hawk@1.1.1
21 silly idealTree   │ ├── hoek@0.9.1
21 silly idealTree   │ ├── http-signature@0.10.1
21 silly idealTree   │ ├── mime-types@1.0.2
21 silly idealTree   │ ├── oauth-sign@0.3.0
21 silly idealTree   │ ├── qs@1.0.2
21 silly idealTree   │ ├── request@2.40.0
21 silly idealTree   │ ├── sntp@0.2.4
21 silly idealTree   │ └── tunnel-agent@0.4.3
21 silly idealTree   ├─┬ got@5.7.1
21 silly idealTree   │ └── readable-stream@2.2.11
21 silly idealTree   ├── graceful-fs@4.1.11
21 silly idealTree   ├── har-schema@1.0.5
21 silly idealTree   ├── har-validator@4.2.1
21 silly idealTree   ├── has-ansi@2.0.0
21 silly idealTree   ├── has-color@0.1.7
21 silly idealTree   ├── has-flag@2.0.0
21 silly idealTree   ├── has-yarn@1.0.0
21 silly idealTree   ├── hash-base@2.0.2
21 silly idealTree   ├── hash.js@1.0.3
21 silly idealTree   ├── hawk@3.1.3
21 silly idealTree   ├── hmac-drbg@1.0.1
21 silly idealTree   ├── hoek@2.16.3
21 silly idealTree   ├── home-or-tmp@2.0.0
21 silly idealTree   ├── hosted-git-info@2.4.2
21 silly idealTree   ├── html-entities@1.2.1
21 silly idealTree   ├─┬ htmlparser2@3.9.2
21 silly idealTree   │ ├── readable-stream@2.2.11
21 silly idealTree   │ └── string_decoder@1.0.2
21 silly idealTree   ├── http-signature@1.1.1
21 silly idealTree   ├── https-browserify@0.0.1
21 silly idealTree   ├── iconv-lite@0.4.18
21 silly idealTree   ├── ieee754@1.1.8
21 silly idealTree   ├── ignore-by-default@1.0.1
21 silly idealTree   ├── imurmurhash@0.1.4
21 silly idealTree   ├── indent-string@3.1.0
21 silly idealTree   ├── indexof@0.0.1
21 silly idealTree   ├── inflight@1.0.6
21 silly idealTree   ├── inherits@2.0.1
21 silly idealTree   ├── ini@1.3.4
21 silly idealTree   ├── invariant@2.2.2
21 silly idealTree   ├── ip-regex@1.0.3
21 silly idealTree   ├── irregular-plurals@1.2.0
21 silly idealTree   ├── is-arrayish@0.2.1
21 silly idealTree   ├── is-binary-path@1.0.1
21 silly idealTree   ├── is-buffer@1.1.5
21 silly idealTree   ├── is-builtin-module@1.0.0
21 silly idealTree   ├── is-ci@1.0.10
21 silly idealTree   ├── is-dotfile@1.0.3
21 silly idealTree   ├── is-equal-shallow@0.1.3
21 silly idealTree   ├── is-error@2.2.1
21 silly idealTree   ├── is-extendable@0.1.1
21 silly idealTree   ├── is-extglob@1.0.0
21 silly idealTree   ├── is-finite@1.0.2
21 silly idealTree   ├── is-fullwidth-code-point@1.0.0
21 silly idealTree   ├── is-generator-fn@1.0.0
21 silly idealTree   ├── is-glob@2.0.1
21 silly idealTree   ├── is-npm@1.0.0
21 silly idealTree   ├── is-number@2.1.0
21 silly idealTree   ├── is-obj@1.0.1
21 silly idealTree   ├── is-object@0.1.2
21 silly idealTree   ├── is-observable@0.2.0
21 silly idealTree   ├── is-plain-obj@1.1.0
21 silly idealTree   ├── is-posix-bracket@0.1.1
21 silly idealTree   ├── is-primitive@2.0.0
21 silly idealTree   ├── is-promise@2.1.0
21 silly idealTree   ├── is-redirect@1.0.0
21 silly idealTree   ├── is-retry-allowed@1.1.0
21 silly idealTree   ├── is-stream@1.1.0
21 silly idealTree   ├── is-typedarray@1.0.0
21 silly idealTree   ├── is-url@1.2.2
21 silly idealTree   ├── is-utf8@0.2.1
21 silly idealTree   ├── is@0.2.7
21 silly idealTree   ├── isarray@1.0.0
21 silly idealTree   ├── isexe@2.0.0
21 silly idealTree   ├── isobject@2.1.0
21 silly idealTree   ├── isstream@0.1.2
21 silly idealTree   ├── jest-diff@18.1.0
21 silly idealTree   ├── jest-file-exists@17.0.0
21 silly idealTree   ├── jest-matcher-utils@18.1.0
21 silly idealTree   ├── jest-mock@18.0.0
21 silly idealTree   ├── jest-snapshot@18.1.0
21 silly idealTree   ├── jest-util@18.1.0
21 silly idealTree   ├── js-tokens@3.0.1
21 silly idealTree   ├── jsbn@0.1.1
21 silly idealTree   ├── jsesc@0.5.0
21 silly idealTree   ├── json-schema@0.2.3
21 silly idealTree   ├── json-stable-stringify@1.0.1
21 silly idealTree   ├── json-stringify-safe@5.0.1
21 silly idealTree   ├── json5@0.5.1
21 silly idealTree   ├── jsonfile@2.4.0
21 silly idealTree   ├── jsonify@0.0.0
21 silly idealTree   ├─┬ jsprim@1.4.0
21 silly idealTree   │ └── assert-plus@1.0.0
21 silly idealTree   ├── kind-of@3.2.2
21 silly idealTree   ├── last-line-stream@1.0.0
21 silly idealTree   ├── latest-version@2.0.0
21 silly idealTree   ├── lazy-req@1.1.0
21 silly idealTree   ├── level-blobs@0.1.7
21 silly idealTree   ├── level-filesystem@1.2.0
21 silly idealTree   ├── level-fix-range@1.0.2
21 silly idealTree   ├── level-hooks@4.5.0
21 silly idealTree   ├── level-peek@1.0.6
21 silly idealTree   ├─┬ level-sublevel@5.2.3
21 silly idealTree   │ ├── level-fix-range@2.0.0
21 silly idealTree   │ └── xtend@2.0.6
21 silly idealTree   ├─┬ levelup@0.18.6
21 silly idealTree   │ └── xtend@3.0.0
21 silly idealTree   ├── load-json-file@2.0.0
21 silly idealTree   ├── locate-path@2.0.0
21 silly idealTree   ├── lodash.assignin@4.2.0
21 silly idealTree   ├── lodash.bind@4.2.1
21 silly idealTree   ├── lodash.debounce@4.0.8
21 silly idealTree   ├── lodash.defaults@4.2.0
21 silly idealTree   ├── lodash.difference@4.5.0
21 silly idealTree   ├── lodash.filter@4.6.0
21 silly idealTree   ├── lodash.flatten@4.4.0
21 silly idealTree   ├── lodash.foreach@4.5.0
21 silly idealTree   ├── lodash.isequal@4.5.0
21 silly idealTree   ├── lodash.map@4.6.0
21 silly idealTree   ├── lodash.merge@4.6.0
21 silly idealTree   ├── lodash.pick@4.4.0
21 silly idealTree   ├── lodash.reduce@4.6.0
21 silly idealTree   ├── lodash.reject@4.6.0
21 silly idealTree   ├── lodash.some@4.6.0
21 silly idealTree   ├── lodash@4.17.4
21 silly idealTree   ├── loose-envify@1.3.1
21 silly idealTree   ├── loud-rejection@1.6.0
21 silly idealTree   ├── lowercase-keys@1.0.0
21 silly idealTree   ├── lru-cache@4.1.1
21 silly idealTree   ├── make-dir@1.0.0
21 silly idealTree   ├── map-obj@1.0.1
21 silly idealTree   ├── matcher@0.1.2
21 silly idealTree   ├── max-timeout@1.0.0
21 silly idealTree   ├── md5-hex@2.0.0
21 silly idealTree   ├── md5-o-matic@0.1.1
21 silly idealTree   ├─┬ meow@3.7.0
21 silly idealTree   │ ├── find-up@1.1.2
21 silly idealTree   │ ├── load-json-file@1.1.0
21 silly idealTree   │ ├── path-exists@2.1.0
21 silly idealTree   │ ├── path-type@1.1.0
21 silly idealTree   │ ├── read-pkg-up@1.0.1
21 silly idealTree   │ ├── read-pkg@1.1.0
21 silly idealTree   │ └── strip-bom@2.0.0
21 silly idealTree   ├── micromatch@2.3.11
21 silly idealTree   ├── miller-rabin@4.0.0
21 silly idealTree   ├── mime-db@1.27.0
21 silly idealTree   ├── mime-types@2.1.15
21 silly idealTree   ├── mime@1.2.11
21 silly idealTree   ├── mimic-fn@1.1.0
21 silly idealTree   ├── minimalistic-assert@1.0.0
21 silly idealTree   ├── minimalistic-crypto-utils@1.0.1
21 silly idealTree   ├── minimatch@3.0.4
21 silly idealTree   ├── minimist@1.2.0
21 silly idealTree   ├─┬ mkdirp@0.5.1
21 silly idealTree   │ └── minimist@0.0.8
21 silly idealTree   ├── ms@0.7.3
21 silly idealTree   ├── multimatch@2.1.0
21 silly idealTree   ├── nan@2.6.2
21 silly idealTree   ├── natural-compare@1.4.0
21 silly idealTree   ├── node-fetch@1.7.1
21 silly idealTree   ├── node-status-codes@1.0.0
21 silly idealTree   ├── node-uuid@1.4.8
21 silly idealTree   ├── normalize-package-data@2.3.8
21 silly idealTree   ├── normalize-path@2.1.1
21 silly idealTree   ├── npm-run-path@2.0.2
21 silly idealTree   ├── nth-check@1.0.1
21 silly idealTree   ├── number-is-nan@1.0.1
21 silly idealTree   ├── oauth-sign@0.8.2
21 silly idealTree   ├── object-assign@4.1.1
21 silly idealTree   ├── object-keys@0.2.0
21 silly idealTree   ├── object.omit@2.0.1
21 silly idealTree   ├── object.pick@1.2.0
21 silly idealTree   ├── observable-to-promise@0.4.0
21 silly idealTree   ├── octal@1.0.0
21 silly idealTree   ├── once@1.4.0
21 silly idealTree   ├── onetime@2.0.1
21 silly idealTree   ├── option-chain@0.1.1
21 silly idealTree   ├── os-browserify@0.1.2
21 silly idealTree   ├── os-homedir@1.0.2
21 silly idealTree   ├── os-tmpdir@1.0.2
21 silly idealTree   ├── osenv@0.1.4
21 silly idealTree   ├── p-finally@1.0.0
21 silly idealTree   ├── p-limit@1.1.0
21 silly idealTree   ├── p-locate@2.0.0
21 silly idealTree   ├─┬ package-hash@1.2.0
21 silly idealTree   │ └── md5-hex@1.3.0
21 silly idealTree   ├─┬ package-json@2.4.0
21 silly idealTree   │ └── semver@5.3.0
21 silly idealTree   ├── pako@0.2.9
21 silly idealTree   ├── parse-asn1@5.1.0
21 silly idealTree   ├── parse-glob@3.0.4
21 silly idealTree   ├── parse-json@2.2.0
21 silly idealTree   ├── parse-ms@1.0.1
21 silly idealTree   ├── path-browserify@0.0.0
21 silly idealTree   ├── path-exists@3.0.0
21 silly idealTree   ├── path-is-absolute@1.0.1
21 silly idealTree   ├── path-key@2.0.1
21 silly idealTree   ├── path-type@2.0.0
21 silly idealTree   ├── pbkdf2@3.0.8
21 silly idealTree   ├── performance-now@0.2.0
21 silly idealTree   ├── pify@2.3.0
21 silly idealTree   ├── pinkie-promise@2.0.1
21 silly idealTree   ├── pinkie@2.0.4
21 silly idealTree   ├── pkg-conf@2.0.0
21 silly idealTree   ├─┬ pkg-dir@1.0.0
21 silly idealTree   │ ├── find-up@1.1.2
21 silly idealTree   │ └── path-exists@2.1.0
21 silly idealTree   ├── plur@2.1.2
21 silly idealTree   ├── prepend-http@1.0.4
21 silly idealTree   ├── preserve@0.2.0
21 silly idealTree   ├── pretty-format@18.1.0
21 silly idealTree   ├─┬ pretty-ms@2.1.0
21 silly idealTree   │ └── plur@1.0.0
21 silly idealTree   ├── private@0.1.7
21 silly idealTree   ├── process-nextick-args@1.0.7
21 silly idealTree   ├── process@0.11.10
21 silly idealTree   ├── prr@0.0.0
21 silly idealTree   ├── pseudomap@1.0.2
21 silly idealTree   ├── public-encrypt@4.0.0
21 silly idealTree   ├── punycode@1.3.2
21 silly idealTree   ├── q@1.0.1
21 silly idealTree   ├── qs@6.4.0
21 silly idealTree   ├── query-string@4.3.4
21 silly idealTree   ├── querystring-es3@0.2.1
21 silly idealTree   ├── querystring@0.2.0
21 silly idealTree   ├─┬ randomatic@1.1.7
21 silly idealTree   │ ├─┬ is-number@3.0.0
21 silly idealTree   │ │ └── kind-of@3.2.2
21 silly idealTree   │ └── kind-of@4.0.0
21 silly idealTree   ├─┬ randombytes@2.0.5
21 silly idealTree   │ └── safe-buffer@5.1.0
21 silly idealTree   ├── rc@1.2.1
21 silly idealTree   ├── react-native-crypto@2.0.2
21 silly idealTree   ├── react-native-http@1.0.0
21 silly idealTree   ├── react-native-level-fs@3.0.0
21 silly idealTree   ├─┬ react-native-randombytes@2.2.0
21 silly idealTree   │ ├── base64-js@1.2.0
21 silly idealTree   │ └── buffer@4.9.1
21 silly idealTree   ├── react-native-tcp@2.0.4
21 silly idealTree   ├── react-native-udp@1.2.9
21 silly idealTree   ├─┬ read-all-stream@3.1.0
21 silly idealTree   │ └── readable-stream@2.2.11
21 silly idealTree   ├── read-pkg-up@2.0.0
21 silly idealTree   ├── read-pkg@2.0.0
21 silly idealTree   ├─┬ readable-stream@1.0.33
21 silly idealTree   │ ├── isarray@0.0.1
21 silly idealTree   │ └── string_decoder@0.10.31
21 silly idealTree   ├─┬ readdirp@2.1.0
21 silly idealTree   │ └── readable-stream@2.2.11
21 silly idealTree   ├─┬ redent@1.0.0
21 silly idealTree   │ └── indent-string@2.1.0
21 silly idealTree   ├── regenerate@1.3.2
21 silly idealTree   ├── regenerator-runtime@0.10.5
21 silly idealTree   ├── regex-cache@0.4.3
21 silly idealTree   ├── regexpu-core@2.0.0
21 silly idealTree   ├── registry-auth-token@3.3.1
21 silly idealTree   ├── registry-url@3.1.0
21 silly idealTree   ├── regjsgen@0.2.0
21 silly idealTree   ├── regjsparser@0.1.5
21 silly idealTree   ├── remove-trailing-separator@1.0.2
21 silly idealTree   ├── repeat-element@1.1.2
21 silly idealTree   ├── repeat-string@1.6.1
21 silly idealTree   ├── repeating@2.0.1
21 silly idealTree   ├─┬ request@2.81.0
21 silly idealTree   │ └── uuid@3.0.1
21 silly idealTree   ├── require-precompiled@0.1.0
21 silly idealTree   ├── resolve-cwd@1.0.0
21 silly idealTree   ├── resolve-from@2.0.0
21 silly idealTree   ├── restore-cursor@2.0.0
21 silly idealTree   ├── rimraf@2.6.1
21 silly idealTree   ├── ripemd160@2.0.1
21 silly idealTree   ├─┬ rn-nodeify@7.0.1
21 silly idealTree   │ ├── semver@5.3.0
21 silly idealTree   │ └── xtend@4.0.1
21 silly idealTree   ├── run-parallel@1.1.6
21 silly idealTree   ├── safe-buffer@5.0.1
21 silly idealTree   ├─┬ semver-diff@2.1.0
21 silly idealTree   │ └── semver@5.3.0
21 silly idealTree   ├── semver@2.3.2
21 silly idealTree   ├── set-immediate-shim@1.0.1
21 silly idealTree   ├── sha.js@2.4.8
21 silly idealTree   ├── signal-exit@3.0.2
21 silly idealTree   ├── sjcl@1.0.6
21 silly idealTree   ├── slash@1.0.0
21 silly idealTree   ├── slice-ansi@0.0.4
21 silly idealTree   ├── slide@1.1.6
21 silly idealTree   ├── sntp@1.0.9
21 silly idealTree   ├── sort-keys@1.1.2
21 silly idealTree   ├── source-map-support@0.4.15
21 silly idealTree   ├── source-map@0.5.6
21 silly idealTree   ├── spdx-correct@1.0.2
21 silly idealTree   ├── spdx-expression-parse@1.0.4
21 silly idealTree   ├── spdx-license-ids@1.2.2
21 silly idealTree   ├─┬ sshpk@1.13.1
21 silly idealTree   │ └── assert-plus@1.0.0
21 silly idealTree   ├── stack-utils@1.0.1
21 silly idealTree   ├── stream-browserify@1.0.0
21 silly idealTree   ├── strict-uri-encode@1.1.0
21 silly idealTree   ├── string_decoder@0.10.31
21 silly idealTree   ├── string-range@1.2.2
21 silly idealTree   ├── string-width@1.0.2
21 silly idealTree   ├── stringstream@0.0.5
21 silly idealTree   ├── strip-ansi@3.0.1
21 silly idealTree   ├── strip-bom-buf@1.0.0
21 silly idealTree   ├── strip-bom@3.0.0
21 silly idealTree   ├── strip-eof@1.0.0
21 silly idealTree   ├── strip-indent@1.0.1
21 silly idealTree   ├── strip-json-comments@2.0.1
21 silly idealTree   ├── supports-color@2.0.0
21 silly idealTree   ├── symbol-observable@0.2.4
21 silly idealTree   ├── text-table@0.2.0
21 silly idealTree   ├─┬ through2@2.0.3
21 silly idealTree   │ ├── readable-stream@2.2.11
21 silly idealTree   │ └── xtend@4.0.1
21 silly idealTree   ├─┬ time-require@0.1.2
21 silly idealTree   │ ├── ansi-styles@1.0.0
21 silly idealTree   │ ├── chalk@0.4.0
21 silly idealTree   │ ├── parse-ms@0.1.2
21 silly idealTree   │ ├── pretty-ms@0.2.2
21 silly idealTree   │ └── strip-ansi@0.1.1
21 silly idealTree   ├── timed-out@3.1.3
21 silly idealTree   ├── timers-browserify@1.4.2
21 silly idealTree   ├── to-fast-properties@1.0.3
21 silly idealTree   ├─┬ tough-cookie@2.3.2
21 silly idealTree   │ └── punycode@1.4.1
21 silly idealTree   ├── trim-newlines@1.0.0
21 silly idealTree   ├── trim-right@1.0.1
21 silly idealTree   ├── tty-browserify@0.0.0
21 silly idealTree   ├── tunnel-agent@0.6.0
21 silly idealTree   ├── tweetnacl@0.14.5
21 silly idealTree   ├── typedarray@0.0.6
21 silly idealTree   ├── uid2@0.0.3
21 silly idealTree   ├── unique-temp-dir@1.0.0
21 silly idealTree   ├── unzip-response@1.0.2
21 silly idealTree   ├── update-notifier@1.0.3
21 silly idealTree   ├── url-parse-lax@1.0.0
21 silly idealTree   ├── url@0.10.3
21 silly idealTree   ├── util-deprecate@1.0.2
21 silly idealTree   ├── util@0.10.3
21 silly idealTree   ├── uuid@2.0.3
21 silly idealTree   ├── validate-npm-package-license@3.0.1
21 silly idealTree   ├── verror@1.3.6
21 silly idealTree   ├── vm-browserify@0.0.4
21 silly idealTree   ├── whatwg-fetch@2.0.3
21 silly idealTree   ├── which@1.2.14
21 silly idealTree   ├── widest-line@1.0.0
21 silly idealTree   ├── wrappy@1.0.2
21 silly idealTree   ├── write-file-atomic@2.1.0
21 silly idealTree   ├─┬ write-json-file@2.2.0
21 silly idealTree   │ └── detect-indent@5.0.0
21 silly idealTree   ├── write-pkg@2.1.0
21 silly idealTree   ├── xdg-basedir@2.0.0
21 silly idealTree   ├── xtend@2.2.0
21 silly idealTree   └── yallist@2.1.2
22 silly install generateActionsToTake
23 silly diffTrees action count 4
24 silly diffTrees add string_decoder@1.0.2
25 silly diffTrees add string_decoder@1.0.2
26 silly diffTrees add string_decoder@0.10.31
27 silly diffTrees add audiotic-core@0.0.24
28 silly decomposeActions action count 30
29 silly decomposeActions fetch string_decoder@1.0.2
30 silly decomposeActions extract string_decoder@1.0.2
31 silly decomposeActions preinstall string_decoder@1.0.2
32 silly decomposeActions build string_decoder@1.0.2
33 silly decomposeActions install string_decoder@1.0.2
34 silly decomposeActions postinstall string_decoder@1.0.2
35 silly decomposeActions finalize string_decoder@1.0.2
36 silly decomposeActions refresh-package-json string_decoder@1.0.2
37 silly decomposeActions fetch string_decoder@1.0.2
38 silly decomposeActions extract string_decoder@1.0.2
39 silly decomposeActions preinstall string_decoder@1.0.2
40 silly decomposeActions build string_decoder@1.0.2
41 silly decomposeActions install string_decoder@1.0.2
42 silly decomposeActions postinstall string_decoder@1.0.2
43 silly decomposeActions finalize string_decoder@1.0.2
44 silly decomposeActions refresh-package-json string_decoder@1.0.2
45 silly decomposeActions fetch string_decoder@0.10.31
46 silly decomposeActions extract string_decoder@0.10.31
47 silly decomposeActions preinstall string_decoder@0.10.31
48 silly decomposeActions build string_decoder@0.10.31
49 silly decomposeActions install string_decoder@0.10.31
50 silly decomposeActions postinstall string_decoder@0.10.31
51 silly decomposeActions finalize string_decoder@0.10.31
52 silly decomposeActions refresh-package-json string_decoder@0.10.31
53 silly decomposeActions preinstall audiotic-core@0.0.24
54 silly decomposeActions build audiotic-core@0.0.24
55 silly decomposeActions install audiotic-core@0.0.24
56 silly decomposeActions postinstall audiotic-core@0.0.24
57 silly decomposeActions finalize audiotic-core@0.0.24
58 silly decomposeActions refresh-package-json audiotic-core@0.0.24
59 silly install executeActions
60 silly doSerial global-install 30
61 verbose correctMkdir /root/.npm/_locks correctMkdir not in flight; initializing
62 verbose lock using /root/.npm/_locks/staging-a072192f34a17023.lock for /usr/lib/node_modules/.staging
63 silly doParallel extract 30
64 silly extract string_decoder@1.0.2
65 silly pacote trying string_decoder@https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz by hash: sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=
66 silly extract string_decoder@1.0.2
67 silly pacote trying string_decoder@https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz by hash: sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=
68 silly extract string_decoder@0.10.31
69 silly pacote trying string_decoder@https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz by hash: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
70 silly pacote data for sha1-sp4fThEl+pehA4K4pTNze3SR4Xk= not present. Using manifest.
71 silly pacote data for sha1-sp4fThEl+pehA4K4pTNze3SR4Xk= not present. Using manifest.
72 silly pacote data for sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= not present. Using manifest.
73 http fetch GET 200 https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz 60ms
74 silly pacote string_decoder@https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz extracted in 73ms
75 http fetch GET 200 https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz 136ms
76 http fetch GET 200 https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz 138ms
77 silly pacote string_decoder@https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz extracted in 148ms
78 silly pacote string_decoder@https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz extracted in 150ms
79 silly doReverseSerial remove 30
80 silly doSerial move 30
81 silly doSerial finalize 30
82 silly finalize /home/gngeorgiev/projects/audiotic/core
83 silly finalize /home/gngeorgiev/projects/audiotic/core/node_modules/string_decoder
84 verbose unlock done using /root/.npm/_locks/staging-a072192f34a17023.lock for /usr/lib/node_modules/.staging
85 warn /home/gngeorgiev/projects/audiotic/core/node_modules/string_decoder is not a child of /usr/lib
86 verbose stack TypeError: opts.mkdirpAsync is not a function
86 verbose stack     at recurseDir (/usr/lib/node_modules/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js:130:15)
86 verbose stack     at /usr/lib/node_modules/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js:104:14
86 verbose stack     at tryCatcher (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
86 verbose stack     at Promise._settlePromiseFromHandler (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
86 verbose stack     at Promise._settlePromise (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
86 verbose stack     at Promise._settlePromise0 (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
86 verbose stack     at Promise._settlePromises (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
86 verbose stack     at Async._drainQueue (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:133:16)
86 verbose stack     at Async._drainQueues (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
86 verbose stack     at Immediate.Async.drainQueues (/usr/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
86 verbose stack     at runCallback (timers.js:800:20)
86 verbose stack     at tryOnImmediate (timers.js:762:5)
86 verbose stack     at processImmediate [as _immediateCallback] (timers.js:733:5)
87 verbose cwd /home/gngeorgiev/projects/audiotic/core
88 verbose Linux 4.10.13-1-ARCH
89 verbose argv "/usr/bin/node" "/usr/bin/npm" "i" "-g" "./"
90 verbose node v8.1.0
91 verbose npm  v5.0.3
92 error opts.mkdirpAsync is not a function
93 verbose exit [ 1, true ]
andrewferrier commented 7 years ago

It would appear this is a problem with the copy-concurrently module:

15381 verbose stack TypeError: opts.mkdirpAsync is not a function
15381 verbose stack     at recurseDir (/usr/local/lib/node_modules/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js:130:15)
15381 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js:104:14
15381 verbose stack     at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
15381 verbose stack     at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
15381 verbose stack     at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
15381 verbose stack     at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
15381 verbose stack     at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
15381 verbose stack     at Async._drainQueue (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:133:16)
15381 verbose stack     at Async._drainQueues (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:143:10)
15381 verbose stack     at Immediate.Async.drainQueues (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
15381 verbose stack     at runCallback (timers.js:800:20)
15381 verbose stack     at tryOnImmediate (timers.js:762:5)
15381 verbose stack     at processImmediate [as _immediateCallback] (timers.js:733:5)
tigersoldier commented 7 years ago

I filed a bug to copy-concurrently: https://github.com/npm/copy-concurrently/issues/1

eschwartz commented 7 years ago

So... what's the story on this? I'm getting the same error trying to run npm install with node v4.8.4 and npm v5.4.1 (in a Docker container)

huan commented 7 years ago

This issue is still existing with the latest version of Node.js v8. Please fix.

woodja commented 7 years ago

I'm getting the same error on both node:8.6-wheezy and node:alpine

`182 verbose cwd /usr/src/app

183 verbose Linux 4.9.49-moby

184 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"

185 verbose node v8.6.0

186 verbose npm v5.3.0

187 error opts.mkdirpAsync is not a function`

moberemk commented 7 years ago

I'm also getting this error on the 8.7 Docker instance (npm version 5.4.2) when trying to run npm prune --production. Not clear why yet.

MartianLee commented 7 years ago

Mee to... npm 5.3.0 node 8.4 When I'm running "npm install" in dockerfile Error occured and I can't make dockerfile becuase of that T.T Oh I solved it! I removed package.json-lock and do the "npm install" again. and success...!

andrewgremlich commented 7 years ago

I am able to replicate this error in a DigitalOcean Ubuntu server running Docker 17.09 ce. I am building two images fresh through docker-compose that are based on node 8.9.1 container, one images builds successfully while the other one doesn't and it gives me this same error in the npm install command.

However! I build this project on my Macbook and run the same build with docker-compose then all functions normally.

EDIT: Here is what I ended up doing. So I build my separate containers individually and out of the docker-compose tool. Once I built them out of the compose but then afterwards I ran them together with a compose command and I was able to deploy something that way.

enaether commented 7 years ago

I have same issue running container based on node:6.11.5 using Docker 17.09 ce. Running container using Docker 17.05 ce is working fine for me. I want to upgrade npm to "npm@5".

Because there are other dependency issues updating npm via npm install -g npm@5 I use yarn to update npm yarn global add npm@5 in Dockerfile:

FROM node:6.11.5 
RUN yarn global add npm@5
...

Docker 17.05 ce: Trying to update npm using yarn. Dependency "copy-concurrently" is installed globally as version 1.0.5 and "move-concurrently" does not have it as its own dependency. Working fine. No issues.

Docker 17.09 ce: Trying to update npm using yarn. Dependency "copy-concurrently" is installed as version 1.0.3 as dependency of "move-concurrently". Although as far as I see having a look at package.json of "move-concurrently" it should be installed as version 1.0.5. This seems strange to me. Not working fine.

Have no solution yet and do not understand why old version of "copy-concurrently" is installed.

Pasupathi-Rajamanickam commented 6 years ago

What is the fix for it. Everyday I'm getting wired error in nodejs. Thinking of those old days with JDK. :(

moberemk commented 6 years ago

We just updated to a new version of Node that updated the npm version alongside it; no issues after that.