From ab7920fe38e614662d689b4db8dfaeedf2fb9d34 Mon Sep 17 00:00:00 2001 From: sunnylqm Date: Mon, 29 Jan 2024 19:01:11 +0800 Subject: [PATCH] feat: support symlink --- src/bundle.js | 4 ++-- src/utils/index.js | 9 ++------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/bundle.js b/src/bundle.js index b094c5d..84355eb 100644 --- a/src/bundle.js +++ b/src/bundle.js @@ -50,7 +50,7 @@ async function runReactNativeBundleCommand( fs.emptyDirSync(outputFolder); Array.prototype.push.apply(reactNativeBundleArgs, [ - path.join('node_modules', 'react-native', 'local-cli', 'cli.js'), + require.resolve('react-native/local-cli/cli.js'), // 'react-native' package may be symlinked 'bundle', '--assets-dest', outputFolder, @@ -171,7 +171,7 @@ async function compileHermesByteCode( ) { console.log(`Hermes enabled, now compiling to hermes bytecode:\n`); // >= rn 0.69 - let hermesCommand = `node_modules/react-native/sdks/hermesc/${getHermesOSBin()}/hermesc`; + let hermesCommand = require.resolve(`react-native/sdks/hermesc/${getHermesOSBin()}/hermesc`); // < rn 0.69 if (!fs.existsSync(hermesCommand)) { const hermesPackage = fs.existsSync('node_modules/hermes-engine') diff --git a/src/utils/index.js b/src/utils/index.js index 1ece057..415d09e 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -43,7 +43,7 @@ export function translateOptions(options) { export function getRNVersion() { const version = JSON.parse( - fs.readFileSync(path.resolve('node_modules/react-native/package.json')), + fs.readFileSync(require.resolve('react-native/package.json')), ).version; // We only care about major and minor version. @@ -139,12 +139,7 @@ export function saveToLocal(originPath, destName) { export function printVersionCommand() { console.log('react-native-update-cli: ' + pkg.version); try { - const PACKAGE_JSON_PATH = path.resolve( - process.cwd(), - 'node_modules', - 'react-native-update', - 'package.json', - ); + const PACKAGE_JSON_PATH = require.resolve('react-native-update/package.json'); console.log('react-native-update: ' + require(PACKAGE_JSON_PATH).version); } catch (e) { console.log('react-native-update: 无法获取版本号,请在项目目录中运行命令');