# 从零开始建立带 TypeScript 的 React Native 项目(自用)
> 前置条件:
> - 趁手的IDE(如 IntelliJ IDEA / Vscode),经测试 Android Studio 不是一个能写RN的IDE(不支持JS语法分析)
> - iOS开发必须环境:Xcode、CocoaPods
> - Android开发必须环境:Android SDK。环境变量配置:ANDROID_HOME为SDK路径、ANDROID_SDK_ROOT为SDK路径、PATH添加platform-tools
> - 如果想简化安卓模拟器使用和安卓SDK的维护,可以安装 Android Studio。注意 IntelliJ IDEA 的插件库直接就有安卓开发插件,因此无需额外安装 Android Studio。
参照官方文档,在项目目录的父目录执行以下命令(也就是不需要手动新建项目目录):
```sh
# 项目名必须符合alphanumeric规则,可以有大写,不可以有连字符和下划线
npx react-native init 你的项目名 --template react-native-template-typescript
```
项目生成完毕后,修改`.eslintrc.js`,屏蔽prettier,忽略一些无关紧要的报错,但是强制要求正确缩进:
```js
module.exports = {
// ...
// other configs
// ...
rules: {
'prettier/prettier': 0,
'react-native/no-inline-styles': 0,
'indent': ['error', 2, {
'SwitchCase': 1,
}],
'no-unreachable': 1,
'@typescript-eslint/no-unused-vars': 0,
'curly': 0,
},
};
```
修改`tsconfig.js`,添加几个开发友好的重要配置:
```js
{
"compilerOptions": {
"noImplicitAny": false,
"noUnusedVars": false,
"noUnusedLocals": false,
"noUnusedParameters": false,
}
}
```
修改`android/build.gradle`,把repositories换源(注意换掉所有匹配项):
```gradle
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
// google()
// jcenter()
// mavenCenter()
```
终端进入`ios`目录,执行以下命令(必须是Mac环境,Windows和Linux无法开发iOS APP):
```shell
pod install
```
项目本体初始化到此结束。App.tsx默认是在项目根目录下,如果想整理架构的话,可以新建一个src目录,把App.tsx挪至src,记得在index.js里重新引入。index.js就不推荐放在src里了,就放外面就行。
第一次运行时候可能会下载gradle,然后在build时通过gradle daemon下载所有依赖,建议“让网络稳定一点”。
建议用TAP,甚至TUN都不行。gradle不太好代理,我试了下面这个方法没用:
配置在`项目目录/android/` 或者 `用户文件夹/.gradle/`下的`gradle.properties`文件里
```properties
org.gradle.daemon=true
http.proxyHost=127.0.0.1
http.proxyPort=7890
https.proxyHost=127.0.0.1
https.proxyPort=7890
```