反应原生创建自定义模板

时间:2017-10-17 18:51:13

标签: react-native

尝试遵循本教程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

1 个答案:

答案 0 :(得分:3)

- == 更新 == -

我写了一篇博文,几乎重申了我在下面写的内容,但我认为它更清晰,更全面。

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
  

注意:我将我的示例发布到npm注册表,因此上面的内容将起作用。

但似乎您实际上是尝试从本地文件系统安装它。在这种情况下,您需要提供模板的完全限定路径,如此...

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

其他参考资料