ReactNative中js編譯成bundle后巩搏,js引用的圖片的去向

ReactNative中js編譯成bundle后扒秸,js引用的圖片的去向


前言

這篇文章我們來講解播演,使用react-native bundle 命令將js文件編譯成bundle文件后,ReactNative(以下簡稱RN)對我們的Android工程都做了什么伴奥。

正文

首先写烤,假設(shè)我們已經(jīng)在原有的android工程中增加了對RN的支持,RN工程目錄結(jié)構(gòu)如下圖:

imgs文件夾存放js文件中需要用到的圖片拾徙,RNDemo就是我們的android工程,我們在index.android.js中的代碼很簡單


import React, {
    Component,
} from 'react';

import {
     AppRegistry,
     Image,
     Text,
     View,
 } from 'react-native';




class DemoProject extends Component
 {
     constructor(props) {
         super(props);
     }


     render() {

         return (
            <View>  
                
                <Image source={require('./imgs/mypic.png')} />
                        
            </View>
         );
     }


 };


 AppRegistry.registerComponent('RNDemo', () => DemoProject);

僅僅是展示一個imgs文件夾中名為mypic.png的圖片

接下來洲炊,我們在命令窗口中cd到我們的RN工程根目錄,執(zhí)行

react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output RNDemo/app/src/main/assets/index.android.bundle --assets-dest RNDemo/app/src/main/res/my_floder

接下來解讀一下這行命令的意思:

  • --platform android 意思是編譯為android平臺所需要的代碼尼啡,
  • --entry-file index.android.js 意思是入口文件是RN工程下的index.android.js暂衡,因為我們命令是在RN工程目錄下執(zhí)行的,index.android.js也在RN工程根目錄崖瞭,所以不用加相對路徑
  • --bundle-output RNDemo/app/src/main/assets/index.android.bundle 意思是把編譯后的bundle輸出到哪里古徒,在這里我們和官網(wǎng)要求的一樣,輸出到我們Android工程的assets目錄下读恃,最后定義我們bundle文件的全名稱index.android.bundle
  • --assets-dest RNDemo/app/src/main/res/my_floder 意思是資源文件輸出的位置隧膘,例如我們最開始提到的RN工程下的imgs文件夾代态,用于存放圖片,就屬于資源文件疹吃,所有的RN工程需要的資源文件會被copy到RNDemo/app/src/main/res/my_floder這個目錄下,需要注意的是蹦疑,my_floder是我為了看清RN會產(chǎn)生哪些資源文件而故意這樣寫的。

這個圖中我們可以看到RN將我們的js文件編譯成了bundle文件萨驶,在文件的最末尾歉摧,可以看到這樣一行代碼

不難看出,RN已經(jīng)將我們的圖片資源文件路徑編譯了進來腔呜,那么這個圖片到底去了哪里叁温?為什么我們的Android工程可以不依賴RN工程目錄下面的imgs資源而獨立運行了呢?答案就在my_folder文件夾中核畴,如圖:

最終我們在drawable-mdpi中找到了我們的圖片資源膝但,圖片資源已經(jīng)被命名為imgs_mypic.png,不難看出,命名規(guī)則是按照RN工程目結(jié)構(gòu)來的谤草。

需要注意兩點:

  • 1.正確的bundle命令是不能帶上最后一個my_folder的跟束,我這樣寫只是為了方便大家看清楚RN所引用的圖片的去向,之前被懷疑圖片被編譯成了二進制丑孩,其實并不是冀宴。
  • 2.android工程中已經(jīng)存在的目錄不會被bundle命令刪除,同名的文件會被覆蓋更新温学,如果RN工程中不再需要mypic.png略贮,而需要mypic2.png,再次執(zhí)行bunlde命令后仗岖,會在這個目錄下生成imgs_mypic2.png刨肃,原來的imgs_mypic.png還是存在的,不會被刪除箩帚。
    下圖說明上述第2點:



所以在開發(fā)過程中,一定要注意編譯到android工程中的圖片資源黄痪,不要產(chǎn)生無用的多余資源紧帕。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市桅打,隨后出現(xiàn)的幾起案子是嗜,更是在濱河造成了極大的恐慌,老刑警劉巖挺尾,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹅搪,死亡現(xiàn)場離奇詭異,居然都是意外死亡遭铺,警方通過查閱死者的電腦和手機丽柿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門恢准,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人甫题,你說我怎么就攤上這事馁筐。” “怎么了坠非?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵敏沉,是天一觀的道長。 經(jīng)常有香客問我炎码,道長盟迟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任潦闲,我火速辦了婚禮攒菠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘矫钓。我一直安慰自己要尔,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布新娜。 她就那樣靜靜地躺著赵辕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪概龄。 梳的紋絲不亂的頭發(fā)上还惠,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音私杜,去河邊找鬼蚕键。 笑死,一個胖子當著我的面吹牛衰粹,可吹牛的內(nèi)容都是我干的锣光。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼铝耻,長吁一口氣:“原來是場噩夢啊……” “哼誊爹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瓢捉,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤频丘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后泡态,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搂漠,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年某弦,在試婚紗的時候發(fā)現(xiàn)自己被綠了桐汤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片而克。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惊科,靈堂內(nèi)的尸體忽然破棺而出拍摇,到底是詐尸還是另有隱情,我是刑警寧澤馆截,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布充活,位于F島的核電站,受9級特大地震影響蜡娶,放射性物質(zhì)發(fā)生泄漏混卵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一窖张、第九天 我趴在偏房一處隱蔽的房頂上張望幕随。 院中可真熱鬧,春花似錦宿接、人聲如沸赘淮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梢卸。三九已至,卻和暖如春副女,著一層夾襖步出監(jiān)牢的瞬間蛤高,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工碑幅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留戴陡,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓沟涨,卻偏偏與公主長得像恤批,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子裹赴,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容