2017-10-17 69 views
3

嘗試下面這個教程Eliminate Boilerplate with React Native Templates但它一直failing for me反應本地創建自定義模板

我想作一個模板,這樣

... 
render() { 
    return (
     <View style={{fontFamily: 'SomeAwesomeFont'}> 
     <Text>Hello </Text> 
     </View> 
    ); 
    } 
... 

一些默認代碼,這在的package.json

"rnpm": { 
    "assets": [ 
    "./assets/fonts/" 
    ] 
}, 

並添加一些字體文件到assets/fonts

希望自己是能夠做到這一點的:

▶ react-native init World --template HelloTemplate

▶ cd World

▶ react-native link


更新

@ChrisGierman指着我的答案(謝謝) 。整個文件夾必須命名爲react-native-template-HelloTemplate

+0

我的答案是否適合您?我還寫了一篇博客文章,我將盡快發佈,以更全面地回答這個問題。 –

+0

嗨,克里斯,非常感謝你的回答。我認爲這是我在發佈SO的問題之前所做的,但我明天會給您一個答案,並標記您是否回答了問題。 – Norfeldt

回答

2

- == UPDATE == -

我寫了一個博客貼子,幾乎什麼重申我已經寫在下面,但我認爲這是一個有點更加清晰和全面。

https://medium.com/@chris.geirman/the-1-2-3s-of-react-native-templates-1f5dda037e11


我看到那篇文章,並已意義給它一段時間的嘗試,所以我想我會利用這個機會做到這一點,也幫助你在同一時間

您在描述中遺漏了很多細節,因爲我無法確認您是否以與文章相同的方式進行了操作,所以我認爲他們值得重申重點。另外,我認爲這篇文章可能有點含糊。所以這裏是對我有用的。

注意:如果您確定所做的一切正確,那麼您可以跳到第4部分 - 發佈。你的主要問題可能就是你如何運行你的cli命令。

1)創建dependencies.json

你提到一個什麼樣的package.json看起來像一個小部分,但條明確規定你的依賴應該進入一個名爲dependencies.json一個新的文件。如果你的依賴是這些,那麼這個文件看起來像這樣(注:我的模板僅僅依賴於react-navigation)...

{ 
    "react-navigation": "^1.0.0-beta.15" 
} 

2)清理'的package.json

接下來的文章描述你應該從package.json中移除不必要的依賴關係,devDependencies,腳本和其他所有東西。模板名稱必須遵循這個約定...

react-native-template-{templateName} 

我的模板被稱爲geirman所以這是我最後package.json是什麼樣子卸下所有多餘的物品。再次,這是整個文件。

{ 
    "name": "react-native-template-geirman", 
    "version": "0.0.1" 
} 

3)刪除本地目錄

rm -rf ./android 
rm -rf ./ios 

4)發佈

接下來,你被告知要發佈,但它並沒有說如何或在哪裏。按照上面的命名約定,您需要publish to the npm registry。然後你使用模板使用下列命令

react-native init myapp --template geirman 

注:我出版了我的例子,故宮註冊表,所以上面會工作。

但它似乎你實際上試圖從本地文件系統安裝它。在這種情況下,你需要提供的完全合格的路徑,像這樣的模板......

react-native init myapp --template file:///Users/ChrisGeirman/dev/mobile/playground/templates/react-native-template-geirman 

其他參考

+0

認爲我的問題是「完全合格的路徑」。在你的例子中,你創建'gierman',但在你的路徑中,你只使用'react-native-template-geirman',而不用導航到'geriman'文件夾中。我嘗試了幾個變化(請參閱更新的問題),但沒有運氣。 – Norfeldt

+0

發現此問題。我必須使用'react-native-template-'作爲文件夾的名稱。 – Norfeldt

+0

非常適合這裏! –