【问题标题】:Why is typescript-transformer and custom rn-cli config needed for react-native ts?为什么 react-native ts 需要 typescript-transformer 和自定义 rn-cli 配置?
【发布时间】:2019-01-11 04:47:05
【问题描述】:

我正在关注有关使用 typescript 的 react native 博客文章:http://facebook.github.io/react-native/blog/2018/05/07/using-typescript-with-react-native

我无法理解的一件事是为什么我们需要 https://github.com/ds300/react-native-typescript-transformer 以及自定义 rn-cli 配置?

据我了解,我们可以将 ts 转换为 dist 之类的文件夹,并从那里将 main App 包含在我们的根级别 index.js 文件中。

为此,一个启动 typescript 编译器和 react native 的简单脚本可以解决问题,或者我错过了什么。

【问题讨论】:

    标签: typescript react-native


    【解决方案1】:

    React Native 使用名为 Metro 的模块捆绑器,react-native-typescript-transformer 插件允许它构建项目的 TypeScript 文件作为捆绑过程的一部分,就像您可以使用 Webpack 插件将 TypeScript 文件转换为其捆绑过程的一部分。

    使用 Metro 和 Webpack,您可以使用 tsc 预先构建您的 TypeScript 文件,而不是使用捆绑程序插件(如果您愿意的话)——这只是这样做的替代方案。

    【讨论】:

    • 我明白了,此时我们需要保留.babelrc预设,因为typescript支持jsx?
    • 我可能是错的,但我认为它仍然使用 Babel 来处理 node_modules/react-native/Libraries/* 中的源文件 - 那些 JS 文件仍然是未转换的 Flow + JSX 形式。
    • react-native-typescript-transformer 并没有为我做太多,所以我在正常的 Metro 捆绑流程之前使用简单的 tsc --watch 提前。删除了 .babelrc ,到目前为止一切似乎都运行良好,项目依赖于许多 react-native 模块。我检查了文件,确实它们没有被转译,所以有点困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2020-05-12
    • 1970-01-01
    • 2016-08-09
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多