Use semver to compare version in cli instead of custom function (#43744)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/43744

## Changelog:
[General] [Changed] - Use semver to do version comparison in cli instead of custom fn `parseVersion`

~~adding test for PR change in https://github.com/facebook/react-native/pull/43712~~

Reviewed By: NickGerleman

Differential Revision: D55600458

fbshipit-source-id: eaffa3e89696b90fd354aefaba79e035d180a0b5
This commit is contained in:
Zeya Peng
2024-04-08 17:10:59 -07:00
committed by Facebook GitHub Bot
parent 1e6f5a48a6
commit c3d45740cd
3 changed files with 11 additions and 6 deletions
+3 -6
View File
@@ -13,6 +13,7 @@
const {name, version: currentVersion} = require('./package.json');
const chalk = require('chalk');
const {get} = require('https');
const semver = require('semver');
const {URL} = require('url');
const deprecated = () => {
@@ -56,11 +57,6 @@ async function getLatestVersion(registryHost = DEFAULT_REGISTRY_HOST) {
});
}
function parseVersion(version) {
const [major, minor = 0, patch = 0] = version.split('-')[0].split('.');
return major * 1000000 + minor * 1000 + patch;
}
/**
* Warn when users are using `npx react-native init`, to raise awareness of the changes from RFC 0759.
*
@@ -134,7 +130,8 @@ async function main() {
if (isNpxRuntime && !process.env.SKIP && currentVersion !== HEAD) {
try {
const latest = await getLatestVersion();
if (parseVersion(latest) > parseVersion(currentVersion)) {
// TODO: T184416093 When cli is deprecated, remove semver from package.json
if (semver.lt(currentVersion, latest)) {
const msg = `
${chalk.bold.yellow('WARNING:')} You should run ${chalk.white.bold(
'npx react-native@latest',
+1
View File
@@ -140,6 +140,7 @@
"react-shallow-renderer": "^16.15.0",
"regenerator-runtime": "^0.13.2",
"scheduler": "0.24.0-canary-efb381bbf-20230505",
"semver": "^7.1.3",
"stacktrace-parser": "^0.1.10",
"whatwg-fetch": "^3.0.0",
"ws": "^6.2.2",
+7
View File
@@ -8511,6 +8511,13 @@ semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.1.3:
version "7.6.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
dependencies:
lru-cache "^6.0.0"
semver@^7.5.2, semver@^7.5.3, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"