【问题标题】:Creating React component libraries using TypeScript vs. Babel compiler使用 TypeScript 与 Babel 编译器创建 React 组件库
【发布时间】:2020-07-04 17:53:48
【问题描述】:

我目前正在使用 babel 编译器来编译我的 React 组件库。我做出这个决定是基于 Create React App 也使用 babel 编译器这一事实。但是,我现在发现使用 babel 创建库更加复杂。无论如何,您都需要引入 TypeScript 编译器来生成类型定义。因此我需要维护两组配置,babel 和 tsconfig。我在一个 monorepo 中有多个这样的库这一事实进一步放大了这种复杂性。

所以我的问题是:

  1. 是否有充分的理由使用 Babel TypeScript 编译器来编译 React 库(与 tsc 相比)?
  2. 如果我完全摆脱 Babel 并仅依赖 tsc,我会失去任何功能吗?

【问题讨论】:

  • 视情况而定。如果使用 Webpack 编译库,那么设置流行的 typescript 加载器可能会更成问题(我个人前段时间偶然发现了编译缓慢、内存使用问题和严重错误)。使用 Babel,您实际上会丢失一些功能(例如 const enum)。
  • 谢谢@polkovnikov.ph。就个人而言,我没有使用 webpack。我发布的包只包含编译成 ES5 的 TypeScript。

标签: reactjs typescript babeljs tsc


【解决方案1】:

经过大量研究,我很清楚,从头开始创建 TypeScript 库时,使用 Babel 编译器是没有意义的。 Babel 不对 TS 文件进行任何类型检查。为此,无论如何我都必须运行 TypeScript 编译器。因此,最好从一开始就使用 TypeScript 编译器。对于 create-react-app,Babel 是更好的选择,因为它们确实如此。已经将它用于 ES6 构建。

此外,我选择了一个 CLI/模板来创建我的库。它被称为TXDX。它确实使创建 TS 库的工作变得非常容易。

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 2021-08-30
    • 1970-01-01
    • 2021-08-31
    • 2018-05-28
    • 2016-07-06
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    相关资源
    最近更新 更多