【问题标题】:tsconfig "module" property with Node server + Create React app带有节点服务器的 tsconfig“模块”属性 + 创建 React 应用程序
【发布时间】:2019-08-03 02:13:47
【问题描述】:

我在一个仓库中有一个节点服务器和一个创建反应应用程序,我正在尝试使用一个 tsconfig.json。出于某种原因,CRA 需要module: "esnext" 并且没有module: "commonjs" 支持的服务器将无法启动。

有人可以向我解释这里发生了什么吗?我怎样才能让他们都使用相同的模块设置?是否可以将其设置为某些东西并为两者工作?我需要 tsconfig 文件吗?

【问题讨论】:

  • 所以它变成了这是因为 CRE 使用 webpack,而节点代码只使用节点,所以对于后端 ts 想要使用 commonjs,因为这就是节点本身所说的,并且 tsc 将您的导入转换为需要. CRE 使用 webpack,不需要将模块转换为 commonjs,它只是将它们捆绑起来。

标签: typescript create-react-app


【解决方案1】:

Create React App 使用使用 Babel with typescript transform 的 webpack,这不是使用 typescript 的“正常”方式。每次您运行 react-scripts 时,CRA 都会修改您的 tsconfig.json,以使其按照 CRA 期望的方式工作。

你可以eject 和重新配置webpack 来打包typescript 编译的js 代码,不涉及Babel,那么你对tsconfig.json 没有任何限制。

或者您可以有两个文件,tsconfig.json 用于 CRA,tsconfig.node.json 用于服务器代码,两者都 extending 第三个 tsconfig.base.json 具有通用设置。

【讨论】:

  • 如何让 CRA 应用程序指向 tsconfig.json 而节点应用程序指向 tsconfig.node.json
猜你喜欢
  • 1970-01-01
  • 2020-08-09
  • 2019-05-12
  • 1970-01-01
  • 2020-04-18
  • 2017-05-08
  • 1970-01-01
  • 2016-03-20
  • 2021-11-23
相关资源
最近更新 更多