Horv
Horv

Reputation: 485

Flow seems not to respect include option?

I've setup my React project with a folder for common components I want to import directly.

src/
---components/
   ---common/
      ---/TextInput
      ---/TabSelector

Full folder structure from root

Each of these folders in common have a index.jsx (and other resources such as style etc) with and export default <name> statement.

So my webpack config has the following configuration:

resolve: {
  modulesDirectories: [
    'node_modules',
    myCommonComponentsPath
  ] 
}

which allows direct imports: import TextInput from 'TextInput'

Trying to add this to .flowconfig (according to flow's documentiation) is not working though:

[include]
./node_modules/
<PROJECT_ROOT>/src/components/common

This works with webpacks resolver (components load and work) but flow gives the following error:

9: import TextInput from 'TextInput';
                          ^^^^^^^^^^^ TextInput. Required module not found

Any help would be appreciated. How do I resolve this?

Upvotes: 2

Views: 357

Answers (1)

Ross Allen
Ross Allen

Reputation: 44880

You need to use the module.system.node.resolve_dirname setting, which is different from the include setting. Since you are telling Webpack a new place to find modules, you also need to tell Flow about that new place.

[options]
module.system.node.resolve_dirname=node_modules
module.system.node.resolve_dirname=src/components/common

The paths are relative to the location of your '.flowconfig' file.

Upvotes: 1

Related Questions