Typescript 在使用 create react app 进行编译时不会出错

Posted

技术标签:

【中文标题】Typescript 在使用 create react app 进行编译时不会出错【英文标题】:Typescript does not error on compilation with create react app 【发布时间】:2021-04-27 02:11:54 【问题描述】:

我已经使用npx create-react-app my-app --template typescript 建立了一个新项目,并且我没有更改任何配置设置。

如果我输入一些有 TS 错误的代码,我的 IDE(VS 代码)会显示错误。但是,当我运行 start/build 时,我没有收到任何编译错误。

除此之外,npm run build 在我们的 GitLab CI/CD 管道上运行时确实会失败并出现错误。

我已经检查了我的 TS 版本,无论是在项目中还是在我的全局模块所在的位置,都是相同的版本 (4.1.3)。

正如我所说,我没有对 create react app 生成的内容进行任何更改,我尝试创建一个新项目并获得相同的结果。有人有什么想法吗?

编辑 - 补充一点,如果我在根目录运行 tsc 会出现编译错误,但 npm start 不会。

编辑 2 - 这是我在 package.json 中的脚本(不受 CRA 提供的内容影响)

"scripts": 
  "start": "react-scripts start",
  "build": "react-scripts build",
  "test": "react-scripts test",
  "eject": "react-scripts eject"

【问题讨论】:

如何在本地运行?使用npm run build? 是的,npm run build 和 npm run start 在它应该出错时都编译没有错误。 npm run build on GitLab CI/CD 管道错误。 你能告诉我们你package.json中的“脚本”部分吗? @gbalduzzi 我已经添加到问题中,他们没有受到 CRA 给我们的影响 请提供有关您遇到的错误的更多信息 【参考方案1】:

我发现我必须这样做才能看到 tsc 错误,但我不喜欢它

  "test": "tsc && react-scripts test",

编辑:看起来这实际上是根据https://github.com/facebook/create-react-app/issues/5626 建议的解决方法

【讨论】:

我一直测试到 react-scripts@2,似乎测试从未被编译过(使用 tsc),所以无论它们被编译/转译,类型都被忽略了跨度>

以上是关于Typescript 在使用 create react app 进行编译时不会出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 create-react-app 和 Typescript 时如何在构建时加载 .md 文件?

Typescript 在使用 create react app 进行编译时不会出错

在 create-react-app + typescript 中导入静态 JSON

.create() on mongoose 模式错误,“此表达式不可调用”-TypeScript

在 Google App Engine 上部署 create-react-app-typescript

create-react-app 可以与 TypeScript 一起使用吗