尝试按照本教程使用React Native Templates消除沸腾板,但对我来说一直失败
我想用一些默认代码做一个模板,比如这个
...
render() {
return (
<View style={{fontFamily: 'SomeAwesomeFont'}>
<Text>Hello </Text>
</View>
);
}
...
这个在包.json 中
"rnpm": {
"assets": [
"./assets/fonts/"
]
},
并在assets/fonts
中添加一些字体文件
希望能够做到这一点:
▶ react-native init World --template HelloTemplate
▶ cd World
▶ react-native link
更新
@克里斯·吉曼给我指了指答案(谢谢)。整个文件夹必须命名为react-native-template-HelloTemplate
。
--===更新===--
我写了一篇博客文章,几乎重申了我在下面写的内容,但我认为它更清晰、更全面。
https://medium.com/@chris.geirman/the1-2-3s-of-rectat-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) 发布
接下来,你被告知要发布,但没有说明如何发布或在哪里发布。您需要按照上面的命名约定发布到npm注册表。然后您可以将模板与以下命令一起使用。。。
react-native init myapp --template geirman
注意:我将我的示例发布到了npm注册表中,因此以上内容将起作用。
但您似乎实际上是在尝试从本地文件系统安装它。在这种情况下,您需要提供完全合格的模板路径,如…
react-native init myapp --template file:///Users/ChrisGeirman/dev/mobile/playground/templates/react-native-template-geirman
其他参考文献
- 如果您想查看已发布模板的外观,请查看
react-native-template-mobx
。它不再工作,因为它使用index.ios.js
和index.android.js
而不是较新的index.js
入口点,但适用相同的基本结构 - 发布到npm注册表