Hello world!
Contents
新建项目
Expo官方网站给出两条路:
- 1. 用expo.new自动设置
- 2. 快速开始文档
第一种方式,expo.new(expo的新花样,链接)会导引你进入一个Expo精心设计的网站,通过你的github账号联动,选择你要创建的项目类型,在网页界面中一步步指引你以EAS工具建立自己的项目,它在你完成 npx eas-cli@latest init:onboarding 命令后自动建立与你GitHub repo的连接。
没错,这是一个云服务,想法很酷,也比较新,但不知现在有多少程序员喜欢用这种方式进入学习和开发呢?本书写作的时候,作者还未发现有人强烈推荐,本人也没有尝试过,还是静观其变吧。我们先走第二条路。
[!NOTE] 接下来的操作过程记录,都是基于作者自己的开发环境。 如果我们的开发环境相似,那真是太好了! 如果遇到因环境差别产生的障碍,希望你通过摸索和网上询问,掌握相应的变通技巧!👍
运行下面这行命令,可用create-expo-app工具建立一个最新版本的Expo App项目。
npx create-expo-app@latest
这 句命令默认引入了一个模版(template),包括用Expo Router库建立的多屏幕架构。当然,我们可以选择不同的模版,只要在命令中加入--template参数即可,比如接下来的例子我们会用blank模版,建立一个最小库依赖的不包括导航配置的项目。
npx create-expo-app@latest --template blank
安装过程中,会有一个问题:What is your app name?
我们给本课程的项目取名叫expo-lesson-blank,之后再无交互。
很快安装就结束了,毕竟是个很“空”的项目。

运行程序
安装命令的结尾处贴心地把运行操作打印出来,让我们赶快run一下,这其实也是对我们前期各种准备工作和安装环境是否正常的检查机会。
[!NOTE] 如果下面的过程不顺利,请 移步前面章节检查自己的环境配置情况。
我们进入刚才建立的项目目录:cd expo-lesson-blank;
执行npm run ios(安卓也行,根据你的偏好来,但本书不讳言各方面内容比较偏向iOS开发);
很快我们的iOS模拟器(Simulator)就自己启动了,并且用Expo Go打开了我们第一个app的界面。如果你是第一次运行,可能在命令行中会提示一下要在模拟器安装Expo Go这个应用,回答Yes就可以。
[!TIP] Expo Go的下载地址:Google Play(Android), App Store(iOS),请在自己的手机上装一下,后面的课程会用到。
我们在启动过程的提示中可以看到,刚才实际上是直接调用了expo cli工具,执行了expo start --ios这条命令,未来的大多数时间,我们都要习惯以expo命令来启动自己写的app了。
我们退出现在的执行命令(Ctrl + C),然后再执行expo。
oops,报错了!
原因是我们从头到尾都没有安装过expo cli,当然没法直接调用它。
现在我们有两个选择,第一当然是安装expo cli,但个人更倾向于永远不去安装它,我们用万能的npx搞定一切,执行npx expo即可,这样带来的好处包括但不限于不用再担心包管理和新版本升级等烦心事。(对npx没有印象的同学,请移步[[前面章节]]。)
expo命令跳出的这些内容包含哪些重要信息呢?我们来解读一下。
[!NOTE] 当然你也可以跳过这段以后再来看,现在只要知道按i打开iOS模拟器,按b去安卓运行就可以了。
› Metro waiting on exp://192.168.1.2:8081
› Scan the QR code above with Expo Go (Android) or the Camera app (iOS)
› Using Expo Go
› Press s │ switch to development build
› Press a │ open Android
› Press i │ open iOS simulator
› Press w │ open web
› Press j │ open debugger
› Press r │ reload app
› Press m │ toggle menu
› Press o │ open project code in your editor
› Press ? │ show all commands
从上到下逐句解读:
Metro waiting on exp://192.168.1.2:8081: 说明expo启动了一个叫Metro的服务,它在ip地址192.168.1.2(我家wifi路由器给开发电脑分配的地址)的8081端口等待前端(模拟器或真机)的访问,如果你同时在这台开发主机启动了其他Metro服务,它们就会开启其他端口,以8082,8083的顺序建立下去。Scan the QR code above with Expo Go (Android) or the Camera app (iOS): 可以用你的手机扫描装置扫描上面的二维码访问Metro服务,当然现在你要安装Expo Go这个应用才行,而且你的手机要和开发主机在一个局域网段内并且互相可访问。国内的同学别看到二维码就想起微信,iPhone的话用手机操作系统自带的那个相机工具就可以,安卓的话Expo Go里的扫码工具更好。- 这两句告诉我们expo cli现在采用Expo Go模式,而且它还可以支持
development build模式,你按一下s就可以了。
› Using Expo Go
› Press s │ switch to development build
当然现在你按下 s 就会得到一个报错,告诉你还没有生成开发包呢,赶快再按s切回来。
- 剩下的内容就很直白了:
› Press a │ open Android
› Press i │ open iOS simulator
› Press w │ open web
› Press j │ open debugger
› Press r │ reload app
› Press m │ toggle menu