在React Native工程中,通常使用CLI命令来运行项目。React Native CLI提供了一些脚本,例如run-ios和run-android来在相应的平台运行应用。
当我们在React Native项目中使用CLI命令时,我们通常会在package.json的scripts字段中定义一些快捷命令,例如:
json
"scripts": {
"ios": "react-native run-ios",
"android": "react-native run-android"
}
那么,在项目根目录下,我们可以通过以下方式运行这些脚本:
使用npm run ios或npm run android
使用yarn ios或yarn android(因为yarn允许省略run)
而npx则用于直接运行包,例如,如果你没有在scripts中定义快捷命令,你也可以直接使用npx react-native run-ios。
现在,针对你的问题:在React Native工程中,如果用CLI在iOS设备编译,应该用yarn ios还是npx ios或是npm ios?
如果你的项目中有package.json的scripts里定义了ios脚本(如上所示),那么你可以使用:
yarn ios(推荐,因为yarn通常更快且更可靠)
npm run ios(注意,npm必须加上run,不能直接npm ios)
如果你没有定义ios脚本,那么你可以直接使用npx react-native run-ios。
注意:npx ios会尝试执行一个名为ios的包,但通常我们并没有一个全局的ios命令,所以除非你全局安装了React Native CLI并且有一个叫ios的包,否则npx ios不会工作。
因此,在React Native项目中,我们通常使用yarn ios(如果你用yarn)或npm run ios(如果你用npm)来运行iOS编译。如果你没有定义脚本,则使用npx react-native run-ios。
另外,需要注意的是,React Native CLI在初始化项目时通常会在package.json中预定义这些脚本,所以大多数情况下你可以使用yarn ios或npm run ios。
# 指定设备
npx react-native run-ios --device "iPhone名称"
# 使用模拟器
npx react-native run-ios --simulator "iPhone 15"
# 清理后重新编译
npx react-native run-ios --reset-cache
总结
对于 React Native iOS 编译,推荐使用:
npx react-native run-ios (最直接可靠)
npm run ios
yarn ios (如果项目配置了该脚本)
这两种方式本质上执行的是相同的操作,但 npx react-native run-ios 更加明确且不依赖项目脚本配置。