之前一個項目需要使用react-native開發(fā),因此呢也學習了一番。一般來說,我們習慣性使用命令
npm i -g react-native-cli
官方的話是這樣給的
npm install -g yarn react-native-cli
使用npm還是yarn當然看你自己的選擇。不過安裝好腳手架,我們就可以很方便通過
react-native init YOUR_APP_NAME --version USED_VERSION
自動化部署好你的第一個react-native項目。其生成的目錄結構所包含的內容以及作用如下:
-
tests
測試文件夾,執(zhí)行命令 “npm test”會調用此文件夾,在文件夾中需要引入待測試文件。
-
android
Android的原生開發(fā)目錄,可以用Android Studio打開進行原生開發(fā)。
-
ios
Ios的原生開發(fā)目錄,可以用Xcode打開進行原生開發(fā)。
-
node_modules
存放所有的項目依賴庫,配置package.json之后執(zhí)行“npm install”后自動創(chuàng)建的文件夾。
-
.babelrc
Babel的配置文件,Babel是一個廣泛使用的轉碼器,可以將ES6代碼轉為ES5代碼,從而在現(xiàn)有環(huán)境執(zhí)行。babelrc用來設置轉碼規(guī)則和插件。
-
.buckconfig
buck的配置文件,buck是Facebook推出的一款高效率的App項目構建工具。
-
.flowconfig
Flow 是 Facebook 旗下一個為 JavaScript 進行靜態(tài)類型檢測的檢測工具。它可以在 JavaScript 的項目中用來捕獲常見的 bugs,比如隱式類型轉換,空引用等等。
-
.gitattributes
git屬性文件設定一些項目特殊的屬性。比如要比較word文檔的不同;對strings程序進行注冊;合并沖突的時候不想合并某些文件等等。
-
.gitignore
用來配置git提交需要忽略的文件。
-
.watchmanconfig
用于監(jiān)控bug文件和文件變化,并且可以出發(fā)指定的操作。
-
app.json
配置了name和displayName,不過沒發(fā)現(xiàn)在哪里使用到了。(待研究。。)
-
index.android.js 和 index.ios.js
Android 和 Ios 入口文件,可以在android的MainApplication中的ReactNativeHost中重寫getJSMainModuleName()方法更改; 在Ios的AppDelegate.m文件的didFinishLaunchingWithOptions方法中通過jsBundleURLForBundleRoot可以更改入口文件。
-
package.json
package.json定義了項目所需要的各種模塊,以及項目的配置信息(比如名稱、版本、許可證等元數據)。npm install命令根據這個配置文件,自動下載所需的模塊,也就是配置項目所需的運行和開發(fā)環(huán)境。
-
yarn.lock
Yarn 是 一個由 Facebook 創(chuàng)建的新 JavaScript 包管理器;每次添加依賴或者更新包版本,yarn都會把相關版本信息寫入yarn.lock文件。這樣可以解決同一個項目在不同機器上環(huán)境不一致的問題。
基于腳手架生成的目錄結構,就可以很快的在此基礎之上進行額外的開發(fā)了。切記,了解目錄結構只是開始,了解各個目錄存在意義及其作用,并且能夠根據個人項目實際來合理創(chuàng)建目錄結構才是最終的目標。