如何使用 create-react-app 安装 typescript + jest?

How to install typescript + jest with create-react-app?

我想在基于 create-react-app 的应用程序中安装 typescript 和 jest。我觉得既然这是一个如此常见的安装选择,那么必须至少遵循一组“一切正常”的配置步骤。

我最初运行npx create-react-app my-project --template typescript。那有一段时间很棒。我用它写了几千行代码。然后有一天我决定我想用这样的代码向规范文件添加一些模拟:

import jest from "jest";

jest.mock('./somemodule');

...但是“笑话”实例未定义。所以我按照不同文章中的说明安装更多的 devDependencies。但是这些似乎与 create-react-app 内部的依赖项冲突,这表明我需要专注于根据其期望正确设置我的项目的“Create-react-app 方式”。

与其让 Whosebug 负担我的构建和包管理问题的细节,我想我只想问一个更简单的问题——在它没有一堆烦人的方法,运行dom 问题?

然后在我听从这个建议之后,如果我仍然有问题,我可能会提出第二个单独的 SO 问题并提供具体细节。

下面的命令应该创建一个支持 Typescript 和 Jest 的新 React 项目,无需进一步修改。

npx create-react-app my-app --template typescript

关于上述命令的详细信息可以在这里找到:https://create-react-app.dev/docs/adding-typescript/

以上命令将建立一个新项目。但是,如果您像我一样,现有的 create-react-app 项目存在以下问题:

  • Jest 模块未定义或似乎没有预期的功能
  • 你的 npm run startnpm run build 由于依赖冲突而失败
  • 或者您只是想获得“标准”package.json 配置,而无需将源代码复制到新项目中。

...您可以使用以下过程 fix/upgrade 您的 package.json:

  1. 使用上面相同的 npx create-react-app my-app --template typescript 命令创建一个具有所有正确依赖项的独立工作(“良好”)项目。本项目仅供参考。
  2. 将 Good 项目的 package.json 与 non-working(“Bad”)项目进行比较,并确保 Bad package.json 具有与好package.json。您可能不必删除不良 package.json 中不在良好 package.json.
  3. 中的任何模块
  4. rm -rf node-modules 在糟糕的项目中。
  5. rm package-lock.json 在糟糕的项目中。
  6. npm install 在糟糕的项目中。

Self-answering 为子孙后代。