<p dir="auto">i tried installing the react expo cli using "npm install -g expo-cli"<br>
and i recieved  this error in my log file<br>
21640 error cb() never called!<br>
21641 error This is an error with npm itself. Please report this error at:<br>
21642 error <a href="https://npm.community" rel="nofollow">https://npm.community</a></p>
<h1 dir="auto">What / Why</h1>

<blockquote>
<p dir="auto">NPM reports unmet dependency after performing a recursive/deep update</p>
</blockquote>
<h2 dir="auto">When</h2>

<ul dir="auto">
<li>After running <a href="https://docs.npmjs.com/cli/update.html#description" rel="nofollow"><code class="notranslate">npm --depth 9999 update</code></a></li>
</ul>
<h2 dir="auto">Where</h2>

<ul dir="auto">
<li>n/a</li>
</ul>
<h2 dir="auto">How</h2>
<h3 dir="auto">Current Behavior</h3>

<ul dir="auto">
<li>After update, <code class="notranslate">npm ls</code> reports a lot of missing/unmet dependencies, for example:
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="├─┬ @semantic-release/exec@3.3.8
│ ├── @semantic-release/error@2.2.0 deduped
│ ├── aggregate-error@3.0.1 deduped
│ ├─┬ debug@4.1.1
│ │ └── ms@2.1.2
│ ├─┬ UNMET DEPENDENCY execa@3.3.0"><pre class="notranslate"><code class="notranslate">├─┬ @semantic-release/exec@3.3.8
│ ├── @semantic-release/error@2.2.0 deduped
│ ├── aggregate-error@3.0.1 deduped
│ ├─┬ debug@4.1.1
│ │ └── ms@2.1.2
│ ├─┬ UNMET DEPENDENCY execa@3.3.0
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="npm ERR! missing: execa@3.3.0, required by @semantic-release/exec@3.3.8"><pre class="notranslate"><code class="notranslate">npm ERR! missing: execa@3.3.0, required by @semantic-release/exec@3.3.8
</code></pre></div>
</li>
</ul>
<h3 dir="auto">Steps to Reproduce</h3>

<ol dir="auto">
<li>Create a folder locally and run <code class="notranslate">npm init</code></li>
<li>Install a package with more than one level of dependencies, e.g. <code class="notranslate">npm i -D @semantic-release/exec</code></li>
<li>Wait for one of their deep dependencies to get a newer version</li>
<li>Run <code class="notranslate">npm --depth 9999 update</code></li>
</ol>
<h3 dir="auto">Expected Behavior</h3>

<ul dir="auto">
<li>There shouldn't be any unmet dependencies. Updates are performed according to the <code class="notranslate">package.json</code> file of their parent or any <code class="notranslate">npm-shrinkwrap.json</code> of their ancestor.</li>
<li>In another word, it should act as if there is no <code class="notranslate">package-lock.json</code> and proceed to resolve all dependencies, install/update/remove as necessary, and then update the lockfile with the resolved tree.</li>
</ul>
<h2 dir="auto">Who</h2>

<ul dir="auto">
<li>n/a</li>
</ul>
<h2 dir="auto">References</h2>

<ul dir="auto">
<li>n/a</li>
</ul>