Flow: react-native: Required module not found

Created on 4 May 2017  路  12Comments  路  Source: facebook/flow

.flowconfig

...
[libs]
node_modules/react-native/Libraries/react-native/react-native-interface.js
node_modules/react-native/flow
flow/
...

index.js

import { View } from 'react-native'; ---> produce: react-native. Required module not found.
...

Maybe my libs settings for flowconfig is broken?

  • react-native 0.42.3
  • flow-bin 0.45.0
react-native

Most helpful comment

@vTrip For example:

Extend flowconfig like this

.flowconfig
module.name_mapper='\(react-native\)' -> '<PROJECT_ROOT>/modulesStub.js'

and then create stub like this:

modulesStub.js
export default {};

All 12 comments

Well, I managed to declare a 'react-native' module definition(libdef), this is a workaround, I prefer a general solution(if there is any?).

Could you share you solution, I am getting this for all my modules that i import into files.

@vTrip For example:

Extend flowconfig like this

.flowconfig
module.name_mapper='\(react-native\)' -> '<PROJECT_ROOT>/modulesStub.js'

and then create stub like this:

modulesStub.js
export default {};

This should work

[ignore]
<PROJECT_ROOT>/node_modules/[^r].* 

to generate custom regex goto https://dsslimshaddy.github.io/flowignore/

Seeing this issue with flow 0.53.1 as well. Any idea what's causing it?

Getting the same with flow 0.53.1 and react-native August.

I have unsafe.enable_getters_and_setters=true. Is there any thing in terms of extension or anything that I need?

Here's a quick solution that works for me to ignore the flow related errors for react-native

  1. Change into your project directory
cd my-awesome-project
  1. Create a directory called flow-typed in your project if it doesn't exists
mkdir flow-typed
  1. Add a file react-native.js
touch react-native.js
  1. Add the following to react-native.js and hit save using your favorite editor
declare module 'react-native' {
    declare module.exports: any;
}

@divyanshu013 You forgot mention that there is needed also:

  1. Add /flow-typed/ into .flowconfig as included libs:
;.flowconfig file

[include]

[libs]
; Your other libs, usually followed:
; node_modules/react-native/Libraries/react-native/react-native-interface.js
; node_modules/react-native/flow/
; node_modules/expo/flow/
flow-typed/

After that flow will known, that should check flow-typed declarations for all "missed" libs

Actually the above solution worked for me at the point of writing. I haven't used flow since then so a lot might have changed. Thanks for updating

@divyanshu013 I think it's a good solution, maybe react-native team can give us a library defination in https://github.com/flowtype/flow-typed

Probably quite obvious by now, but still an issue with v0.63.0 using React-Native 0.53.0's .flowconfig.

It looks like someone wrote up a Flow libdef for react-native as a GitHub gist. It looks like this would be a good place to start for submitting it to flow-typed.

Note 鈥撀燘ased on the comments in that gist, there do seem to be some minor errors with that libdef that need to be fixed though.

Was this page helpful?
0 / 5 - 0 ratings