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: 无法获取版本号,请在项目目录中运行命令');