1
0
mirror of https://gitcode.com/github-mirrors/react-native-update-cli.git synced 2025-09-16 01:41:37 +08:00
Code Issues Packages Projects Releases Wiki Activity GitHub Gitee

support rn 69 hermes

This commit is contained in:
sunnylqm
2022-07-01 23:02:20 +08:00
parent da7bdbfdd2
commit 0cfc6e4f0d
3 changed files with 83 additions and 26 deletions

View File

@@ -36,7 +36,7 @@
"cli-arguments": "^0.2.1",
"filesize-parser": "^1.5.0",
"fs-extra": "8",
"gradle-to-js": "^2.0.0",
"gradle-to-js": "^2.0.1",
"node-fetch": "^2.6.1",
"progress": "^2.0.3",
"read": "^1.0.7",

65
pnpm-lock.yaml generated
View File

@@ -1,4 +1,4 @@
lockfileVersion: 5.3
lockfileVersion: 5.4
specifiers:
app-info-parser: ^1.0.0
@@ -10,7 +10,7 @@ specifiers:
cli-arguments: ^0.2.1
filesize-parser: ^1.5.0
fs-extra: '8'
gradle-to-js: ^2.0.0
gradle-to-js: ^2.0.1
node-fetch: ^2.6.1
progress: ^2.0.3
read: ^1.0.7
@@ -26,7 +26,7 @@ dependencies:
cli-arguments: 0.2.1
filesize-parser: 1.5.0
fs-extra: 8.1.0
gradle-to-js: 2.0.0
gradle-to-js: 2.0.1
node-fetch: 2.6.5
progress: 2.0.3
read: 1.0.7
@@ -58,6 +58,22 @@ packages:
defer-to-connect: 1.1.3
dev: false
/@types/keyv/3.1.4:
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
dependencies:
'@types/node': 18.0.0
dev: false
/@types/node/18.0.0:
resolution: {integrity: sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==}
dev: false
/@types/responselike/1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
'@types/node': 18.0.0
dev: false
/ajv/6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
dependencies:
@@ -223,6 +239,8 @@ packages:
v8flags: 2.1.1
optionalDependencies:
chokidar: 1.7.0
transitivePeerDependencies:
- supports-color
dev: true
/babel-code-frame/6.26.0:
@@ -255,6 +273,8 @@ packages:
private: 0.1.8
slash: 1.0.0
source-map: 0.5.7
transitivePeerDependencies:
- supports-color
dev: true
/babel-generator/6.26.1:
@@ -275,6 +295,8 @@ packages:
dependencies:
babel-runtime: 6.26.0
babel-template: 6.26.0
transitivePeerDependencies:
- supports-color
dev: true
/babel-messages/6.23.0:
@@ -294,6 +316,8 @@ packages:
babel-runtime: 6.26.0
babel-template: 6.26.0
babel-types: 6.26.0
transitivePeerDependencies:
- supports-color
dev: true
/babel-plugin-transform-es2015-spread/6.22.0:
@@ -334,6 +358,8 @@ packages:
lodash: 4.17.21
mkdirp: 0.5.5
source-map-support: 0.4.18
transitivePeerDependencies:
- supports-color
dev: true
/babel-runtime/6.26.0:
@@ -351,6 +377,8 @@ packages:
babel-types: 6.26.0
babylon: 6.18.0
lodash: 4.17.21
transitivePeerDependencies:
- supports-color
dev: true
/babel-traverse/6.26.0:
@@ -365,6 +393,8 @@ packages:
globals: 9.18.0
invariant: 2.2.4
lodash: 4.17.21
transitivePeerDependencies:
- supports-color
dev: true
/babel-types/6.26.0:
@@ -479,6 +509,8 @@ packages:
snapdragon-node: 2.1.1
split-string: 3.1.0
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
dev: true
optional: true
@@ -592,7 +624,7 @@ packages:
dev: false
/chokidar/1.7.0:
resolution: {integrity: sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=}
resolution: {integrity: sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==}
deprecated: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
requiresBuild: true
dependencies:
@@ -606,6 +638,8 @@ packages:
readdirp: 2.2.1
optionalDependencies:
fsevents: 1.2.13
transitivePeerDependencies:
- supports-color
dev: true
optional: true
@@ -786,6 +820,11 @@ packages:
/debug/2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.0.0
dev: true
@@ -969,6 +1008,8 @@ packages:
regex-not: 1.0.2
snapdragon: 0.8.2
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
dev: true
optional: true
@@ -1021,6 +1062,8 @@ packages:
regex-not: 1.0.2
snapdragon: 0.8.2
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
dev: true
optional: true
@@ -1249,6 +1292,8 @@ packages:
dependencies:
'@sindresorhus/is': 0.14.0
'@szmarczak/http-timer': 1.1.2
'@types/keyv': 3.1.4
'@types/responselike': 1.0.0
cacheable-request: 6.1.0
decompress-response: 3.3.0
duplexer3: 0.1.4
@@ -1263,8 +1308,8 @@ packages:
/graceful-fs/4.2.8:
resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==}
/gradle-to-js/2.0.0:
resolution: {integrity: sha512-eoYJiSoreHG0cS5aUmv7ISJhajuULlqdqG3QKVti6x1EFkBXE8rGH6ipGKWEesXpCkfNgzBrhzo5ztIH1JWZMw==}
/gradle-to-js/2.0.1:
resolution: {integrity: sha512-is3hDn9zb8XXnjbEeAEIqxTpLHUiGBqjegLmXPuyMBfKAggpadWFku4/AP8iYAGBX6qR9/5UIUIp47V0XI3aMw==}
hasBin: true
dependencies:
lodash.merge: 4.6.2
@@ -1935,6 +1980,8 @@ packages:
regex-not: 1.0.2
snapdragon: 0.8.2
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
dev: true
optional: true
@@ -2013,6 +2060,8 @@ packages:
regex-not: 1.0.2
snapdragon: 0.8.2
to-regex: 3.0.2
transitivePeerDependencies:
- supports-color
dev: true
optional: true
@@ -2306,6 +2355,8 @@ packages:
graceful-fs: 4.2.8
micromatch: 3.1.10
readable-stream: 2.3.7
transitivePeerDependencies:
- supports-color
dev: true
optional: true
@@ -2527,6 +2578,8 @@ packages:
source-map: 0.5.7
source-map-resolve: 0.5.3
use: 3.1.1
transitivePeerDependencies:
- supports-color
dev: true
optional: true

View File

@@ -48,6 +48,7 @@ async function runReactNativeBundleCommand(
fs.emptyDirSync(outputFolder);
// TODO sourcemap
Array.prototype.push.apply(reactNativeBundleArgs, [
path.join('node_modules', 'react-native', 'local-cli', 'cli.js'),
'bundle',
@@ -94,7 +95,10 @@ async function runReactNativeBundleCommand(
),
);
} else {
if (gradleConfig.enableHermes) {
if (
(platform === 'android' && gradleConfig.enableHermes) ||
(platform === 'ios' && fs.existsSync('ios/Pods/hermes-engine'))
) {
await compileHermesByteCode(bundleName, outputFolder);
}
resolve(null);
@@ -134,15 +138,21 @@ async function checkGradleConfig() {
async function compileHermesByteCode(bundleName, outputFolder) {
console.log(`Hermes enabled, now compiling to hermes bytecode:\n`);
const hermesPackage = fs.existsSync('node_modules/hermes-engine')
? 'node_modules/hermes-engine' // 0.2+
: 'node_modules/hermesvm'; // < 0.2
const hermesPath = `${hermesPackage}/${getHermesOSBin()}`;
// >= rn 0.69
let hermesCommand = `node_modules/react-native/sdks/hermesc/${getHermesOSBin()}/hermesc`;
// < rn 0.69
if (!fs.existsSync(hermesCommand)) {
const hermesPackage = fs.existsSync('node_modules/hermes-engine')
? 'node_modules/hermes-engine' // 0.2+
: 'node_modules/hermesvm'; // < 0.2
const hermesPath = `${hermesPackage}/${getHermesOSBin()}`;
const hermesCommand = fs.existsSync(`${hermesPath}/hermesc`)
? `${hermesPath}/hermesc` // 0.5+
: `${hermesPath}/hermes`; // < 0.5
hermesCommand = fs.existsSync(`${hermesPath}/hermesc`)
? `${hermesPath}/hermesc` // 0.5+
: `${hermesPath}/hermes`; // < 0.5
}
// TODO sourcemap
spawnSync(
path.join.apply(null, hermesCommand.split('/')),
[
@@ -514,17 +524,11 @@ export const commands = {
options.platform || (await question('平台(ios/android):')),
);
let {
bundleName,
entryFile,
intermediaDir,
output,
dev,
verbose,
} = translateOptions({
...options,
platform,
});
let { bundleName, entryFile, intermediaDir, output, dev, verbose } =
translateOptions({
...options,
platform,
});
// const sourcemapOutput = path.join(intermediaDir, bundleName + ".map");