简体   繁体   中英

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

We are working on a previously ejected create-react-app and now want to add flowtype.

We have followed the guide at: https://flow.org/en/docs/tools/create-react-app/

Should that work for an ejected app?

This has unfortunately caused the webpack-dev server launched with yarn start to stop automatically reloading on file updates.

Additionally, after adding // @flow to some files there is no output or indication of flow enforcing type checking.

Will we need to manually update the webpack configs?

Heres the package.json scripts

  "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",
  },

The output for running yarn start is:

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.

The doc you linked tells you how to install the flow-bin and to make a configuration file but don`t tells how to launch it.
Flow is separated tool that should be launch by own command (depends on how you wanna run it):

  1. if you want to check types check manually, you need to add npm command on the "scripts" section of your package.js : "example-comand-flow": "flow" . Then call it by npm run example-comand-flow and you`ll get errors directly on a terminal you running the script.
  2. if you wanna have continuing type checking, you should find a manual how to configure it in your IDE. For example, in WebStorm you should go Preferences -> Languages & Frameworks -> JavaScript and set JavaScript language version to Flow and specify flow executable.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM