title: Can't upgrade React-Native project due dependencies
body: <p>I am trying to update my RN project from 0.62.2 to the latest one (currently 0.63.3).
  I am just running <code>npm update</code> and get errors:</p>
  <pre><code>npm ERR! Found: react@17.0.1
  npm ERR! node_modules/react
  npm ERR!   react@&quot;^17.0.1&quot; from the root project
  npm ERR! 
  npm ERR! Could not resolve dependency:
  npm ERR! peer react@&quot;16.13.1&quot; from react-native@0.63.3
  npm ERR! node_modules/react-native
  npm ERR!   react-native@&quot;^0.63.3&quot; from the root project
  npm ERR! 
  npm ERR! Fix the upstream dependency conflict, or retry
  npm ERR! this command with --force, or --legacy-peer-deps
  npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
  </code></pre>
  <p>Before running <code>npm update</code> I had ran <code>npx npm-check-updates -u</code> and got the following:</p>
  <pre><code> @react-native-community/netinfo          ^5.9.5  →   ^5.9.9     
   @react-navigation/drawer                 ^5.8.6  →  ^5.11.4     
   @react-navigation/native                 ^5.7.1  →  ^5.8.10     
   @react-navigation/stack                  ^5.7.1  →  ^5.12.8     
   @types/react                           ^16.9.43  →  ^17.0.0     
   amazon-cognito-identity-js               ^3.3.3  →   ^4.5.5     
   aws-amplify                             ^3.0.21  →  ^3.3.10     
   axios                                   ^0.19.2  →  ^0.21.0     
   graphql                                 ^0.11.7  →  ^15.4.0     
   graphql-tag                             ^2.10.4  →  ^2.11.0     
   moment-timezone                         ^0.5.31  →  ^0.5.32     
   react                                  ^16.11.0  →  ^17.0.1     
   react-native                            ^0.62.2  →  ^0.63.3     
   react-native-base64                       0.0.2  →    0.1.0     
   react-native-gesture-handler             ~1.5.0  →   ~1.9.0     
   react-native-reanimated                  ~1.4.0  →  ~1.13.2     
   react-native-safe-area-context           ^0.7.3  →   ^3.1.9     
   react-native-screens             2.0.0-alpha.12  →   2.15.0     
   react-native-simple-crypto              ^0.2.13  →  ^0.2.15     
   react-native-vector-icons                ^6.7.0  →   ^7.1.0     
   react-navigation                         ^4.4.0  →   ^4.4.3     
   @babel/core                               7.8.7  →   7.12.9     
   @babel/runtime                            7.8.7  →   7.12.5     
   babel-jest                               24.9.0  →   26.6.3     
   metro-react-native-babel-preset          0.56.4  →   0.64.0     
   react-test-renderer                      16.9.0  →   17.0.1   
  </code></pre>
  <p>OK, I summarise from the error that <code>react@^17.0.1</code> is wrong for <code>react-native@0.63.3</code> which requires <code>react@16.13.1</code> but this was produced by <code>npx npm-check-updates -u</code> - why it makes incompatible deps tree?..</p>
  <p>If I change manually react version to &quot;^16.0.0&quot;, <code>npm install</code> fails with:</p>
  <pre><code>npm ERR! Found: react@16.14.0
  npm ERR! node_modules/react
  npm ERR!   react@&quot;^16.0.0&quot; from the root project
  npm ERR! 
  npm ERR! Could not resolve dependency:
  npm ERR! peer react@&quot;16.13.1&quot; from react-native@0.63.3
  npm ERR! node_modules/react-native
  npm ERR!   react-native@&quot;^0.63.3&quot; from the root project
  </code></pre>
  <p>Why &quot;react@16.14.0&quot;?! From where?</p>
  <p>I just can't understand how all this s..tuff works.. Please, suggest.</p>
  <p>My current <code>package.json</code>:</p>
  <pre><code>{
    &quot;name&quot;: &quot;Proj&quot;,
    &quot;version&quot;: &quot;0.0.1&quot;,
    &quot;private&quot;: true,
    &quot;scripts&quot;: {
      &quot;android&quot;: &quot;react-native run-android&quot;,
      &quot;ios&quot;: &quot;react-native run-ios&quot;,
      &quot;start&quot;: &quot;react-native start&quot;,
      &quot;test&quot;: &quot;jest&quot;
    },
    &quot;dependencies&quot;: {
      &quot;@react-native-community/masked-view&quot;: &quot;^0.1.10&quot;,
      &quot;@react-native-community/netinfo&quot;: &quot;^5.9.9&quot;,
      &quot;@react-navigation/drawer&quot;: &quot;^5.11.4&quot;,
      &quot;@react-navigation/native&quot;: &quot;^5.8.10&quot;,
      &quot;@react-navigation/stack&quot;: &quot;^5.12.8&quot;,
      &quot;@types/react&quot;: &quot;^17.0.0&quot;,
      &quot;amazon-cognito-identity-js&quot;: &quot;^4.5.5&quot;,
      &quot;aws-amplify&quot;: &quot;^3.3.10&quot;,
      &quot;axios&quot;: &quot;^0.21.0&quot;,
      &quot;graphql&quot;: &quot;^15.4.0&quot;,
      &quot;graphql-tag&quot;: &quot;^2.11.0&quot;,
      &quot;i18n-js&quot;: &quot;^3.8.0&quot;,
      &quot;moment-timezone&quot;: &quot;^0.5.32&quot;,
      &quot;react&quot;: &quot;^16.0.0&quot;,
      &quot;react-native&quot;: &quot;^0.63.3&quot;,
      &quot;react-native-avatar-social&quot;: &quot;0.0.3&quot;,
      &quot;react-native-base64&quot;: &quot;0.1.0&quot;,
      &quot;react-native-gesture-handler&quot;: &quot;~1.9.0&quot;,
      &quot;react-native-linear-gradient&quot;: &quot;^2.5.6&quot;,
      &quot;react-native-localize&quot;: &quot;^2.0.1&quot;,
      &quot;react-native-reanimated&quot;: &quot;~1.13.2&quot;,
      &quot;react-native-safe-area-context&quot;: &quot;^3.1.9&quot;,
      &quot;react-native-screens&quot;: &quot;2.15.0&quot;,
      &quot;react-native-simple-crypto&quot;: &quot;^0.2.15&quot;,
      &quot;react-native-tab-view&quot;: &quot;^2.15.2&quot;,
      &quot;react-native-tab-view-viewpager-adapter&quot;: &quot;^1.1.0&quot;,
      &quot;react-native-uuid-generator&quot;: &quot;^6.1.1&quot;,
      &quot;react-native-vector-icons&quot;: &quot;^7.1.0&quot;,
      &quot;react-native-video&quot;: &quot;^4.4.5&quot;,
      &quot;react-native-viewpager&quot;: &quot;^0.2.13&quot;,
      &quot;react-native-zeroconf&quot;: &quot;github:atlascoder/react-native-zeroconf&quot;,
      &quot;react-navigation&quot;: &quot;^4.4.3&quot;,
      &quot;rn-fetch-blob&quot;: &quot;^0.12.0&quot;
    },
    &quot;devDependencies&quot;: {
      &quot;@babel/core&quot;: &quot;7.12.9&quot;,
      &quot;@babel/runtime&quot;: &quot;7.12.5&quot;,
      &quot;babel-jest&quot;: &quot;26.6.3&quot;,
      &quot;metro-react-native-babel-preset&quot;: &quot;0.64.0&quot;,
      &quot;react-test-renderer&quot;: &quot;17.0.1&quot;
    },
    &quot;rnpm&quot;: {
      &quot;assets&quot;: [
        &quot;./assets/fonts/&quot;
      ]
    }
  }
  </code></pre>
  <p><strong>UPDATE</strong></p>
  <p>Following @anthony-marino suggestion I made manual dependencies update by <a href="https://react-native-community.github.io/upgrade-helper/?from=0.62.2&amp;to=0.63.3" rel="noreferrer">update helper</a>, and the I returned to the issue that moved my to upgrade!!</p>
  <pre><code>npm ERR! Found: react@16.13.1
  npm ERR! node_modules/react
  npm ERR!   react@&quot;16.13.1&quot; from the root project
  npm ERR!   peer react@&quot;^16.0&quot; from @react-native-community/viewpager@4.2.1
  npm ERR!   node_modules/@react-native-community/viewpager
  npm ERR!     peer @react-native-community/viewpager@&quot;*&quot; from react-native-tab-view-viewpager-adapter@1.1.0
  npm ERR!     node_modules/react-native-tab-view-viewpager-adapter
  npm ERR!       react-native-tab-view-viewpager-adapter@&quot;^1.1.0&quot; from the root project
  npm ERR!   15 more (@react-navigation/core, @react-navigation/drawer, ...)
  npm ERR! 
  npm ERR! Could not resolve dependency:
  npm ERR! peer react@&quot;16.11.0&quot; from react-native-zeroconf@0.12.3
  npm ERR! node_modules/react-native-zeroconf
  npm ERR!   react-native-zeroconf@&quot;github:atlascoder/react-native-zeroconf&quot; from the root project
  npm ERR! 
  </code></pre>
  <p>And the thing that runs me out..</p>
  <p>I have a component <code>from @react-native-community/viewpager</code> and why if it requires peerDep <code>react@&quot;^16.0&quot;</code> - why it doesn't accept <code>react@16.13.1</code>. The <code>^16.0</code> means all fresher that <code>16.*</code>, doesn't it?! When I check <code>^16.0</code> on <a href="https://semver.npmjs.com/" rel="noreferrer">npm semver calculator</a> - it shows me <code>16.13.1</code> as suitable..</p>
  <p><strong>WORKAROUND</strong></p>
  <p>On trapping to this trouble while update:</p>
  <ol>
  <li>Delete <code>node_modules</code> and <code>package-lock.json</code></li>
  <li><code>npm i</code></li>
  <li>When <code>npm i</code> fails - remove failing dependencies</li>
  <li>After completion of <code>npm i</code> - manually install removed dependencies</li>
  </ol>