如何将流类型添加到弹出的 create-react-app?

How to add flowtype to an ejected create-react-app?

我们正在处理以前弹出的 create-react-app,现在想添加流类型。

我们已遵循以下指南:https://flow.org/en/docs/tools/create-react-app/

这适用于弹出的应用程序吗?

不幸的是,这导致使用 yarn start 启动的 webpack-dev 服务器停止自动重新加载文件更新。

此外,在向某些文件添加 // @flow 后,没有输出或流强制类型检查的指示。

我们需要手动更新 webpack 配置吗?

这是 package.json 脚本

  "scripts": {
    "start": "node scripts/start.js",
    "build": "yarn build-client && yarn build-server",
    "build-client": "node scripts/build.js",
    "build-server": "./node_modules/.bin/webpack --config ./config/webpack.server.config.js",
    "test": "node scripts/test.js --env=jsdom",
  },

运行 yarn start 的输出是:

Compiled successfully!

You can now view cra in the browser.

  Local:            http://localhost:3000/
  On Your Network:  http://192.168.1.65:3000/

Note that the development build is not optimized.
To create a production build, use yarn build.

您链接的文档告诉您如何安装 flow-bin 和制作配置文件,但没有告诉您如何启动它。
Flow 是独立的工具,应该由自己的命令启动(取决于你想要的方式 运行):

  1. 如果您想手动检查类型,您需要在 package.js 的 "scripts" 部分添加 npm 命令:"example-comand-flow": "flow"。然后通过 npm run example-comand-flow 调用它,您将在 运行 运行脚本的终端上直接收到错误。
  2. 如果您想继续进行类型检查,您应该在 IDE 中找到如何配置它的手册。例如,在 WebStorm 中,您应该转到 Preferences -> Languages & Frameworks -> JavaScript 并将 JavaScript language version 设置为 Flow 并指定流可执行文件。