最近开始做一个RN项目,之前没怎么接触过,遇到些问题,就边做边记吧
一、环境搭建
React Native的官方文档步骤还挺完善的,这里就不赘述了,主要的一点就是涉及到安卓的需要有稳定的代理软件。
二、项目创建
我这里是直接拉取的文档中的TS模板项目:
但我感觉其中还有些东西需要配置。
三、prettier配置
首先是Prettier,我换成了自己习惯的配置:
四、路径alias配置
由于这个项目使用的babel,所以我们这里直接配置babel来实现。
- 安装所需插件:
- 配置babel.config.js,添加一项plugins,按如下配置:
这样所有的~/*
都会转换成./js/*
;
- 配置tsconfig.json,在文件中添加baseUrl和path,以便IDE可以识别alias
五、配置JSX/TSX转换
JSX/TSX文件都需要import React from 'react'
,这点着实感觉有点麻烦,好在React17已经和babel合作推出了自动转换的插件,具体可见介绍全新的 JSX 转换,但是RN需要额外配置,下面记录下配置过程:
- 安装插件,官方给了两个插件
@babel/preset-react
和@babel/plugin-transform-react-jsx
,其中前者是包括后者的,里面还预设了一些React的相关的配置,所以这里选择前者;
- 配置babel.config.js,需要在presets中添加
@babel/preset-react
,并在metro-react-native-babel-preset
中将useTransformReactJSXExperimental
设置为true
:
- 配置metro.config.js,将
experimentalImportSupport
更改为true
:
六、完善eslint
这里主要是加上了react-hooks
,然后配置了下忽略JSX/TSX文件中的import React以及允许inline style:
七、配置editorconfig
主要用于统一IDE文件格式,根目录创建.editorconfig
:
八、更改maven源
参考官方文档
尝试阿里云提供的maven 镜像,将
android/build.gradle
中的jcenter()
和google()
分别替换为maven { url 'https://maven.aliyun.com/repository/jcenter' }
和maven { url 'https://maven.aliyun.com/repository/google' }
(注意有多处需要替换)。
至此,项目就算创建、基础配置完成了。