facebook/flow

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)

Open

#7,427 opened on Feb 1, 2019

View on GitHub
 (5 comments) (0 reactions) (0 assignees)Rust (1,885 forks)batch import
enhancementerror messagesgood first issuemodule resolution

Repository metrics

Stars
 (22,203 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

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

Contributor guide