facebook / flow

Adds static typing to JavaScript to improve developer productivity and code quality.
https://flow.org/
MIT License
22.09k stars 1.85k forks source link

If a `name_mapper` points to a non-existent file, it should tell user that the mapped path doesn't exist (instead of the original path) #7427

Open vjpr opened 5 years ago

vjpr commented 5 years ago
module.name_mapper='.*\.css$' -> '<PROJECT_ROOT>/css-modules-stub.js.flow'
import foo from `foo.css`

Flow version: 0.91.

Expected behavior

Error should say:

Cannot find module 'foo.css' (after it was remapped to '<PROJECT_ROOT>/css-modules-stub.js.flow', check your .flowconfig mapper paths exist)

Actual behavior

Cannot find module 'foo.css' 

Related: https://github.com/facebook/flow/issues/3889


Another example:

module.name_mapper='debug' -> 'empty/object'

If empty/object doesn't exist, there is no message to say that is the cause of Cannot resolve module 'debug' error.


There are many cases where name_mapper breaks things by the user wouldn't know. Try this to show the errors that are generated:

module.name_mapper='.*' -> '<PROJECT_ROOT>/some-empty-stub.js'

Then you get errors like this:

Cannot import Component because there is no Component export in react. Did you mean import Component from "..."?

But the cause is that the name_mapper has mapped to a file that doesn't export anything.

Related

vicapow commented 5 years ago

Thanks for the report!

ollelauribostrom commented 5 years ago

I'd love to give this a shot (first contribution). Any pointers?

goodmind commented 4 years ago

@ollelauribostrom are you still open to this?

code4cake commented 4 years ago

@ollelauribostrom or @goodmind I can take it if it hasn't been done.

Could someone give me a pointer on how to best tackle this?

In the meantime, reading the contributing guidelines.

Thanks