facebook / facebook/flow

Case sensitivity mismatch leads to "Required module not found" errors

未关闭
#3,125 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug Windows support
主要语言
Rust
星标
22.3k
派生
1.9k
PR 合并指标
30 天内没有已合并 PR

描述

This is related to #2117 but was a lot more of a pain to debug, as the errors it results in provide no clue that it's a case sensitivity issue.

One day out of nowhere I was suddenly getting hundreds of `Required module not found` errors when running a flow check, both on third party modules and import references to my own code. Tried reinstalling all npm modules etc with no luck.

```
navigation/RootNavigation.js:8
8: } from 'react-native'
^^^^^^^^^^^^^^ react-native. Required module not found

navigation/RootNavigation.js:22
22: import Colors from '../constants/Colors'
^^^^^^^^^^^^^^^^^^^^^ ../constants/Colors. Required module not found
```

Turns out I'd just happened to `cd` to the path of the project lazily using lowercase paths (works fine in the git bash in Windows 10), when there are a couple of uppercase letters in the real path. Unlike the examples in #2117 , I wasn't even getting a client/server mismatch error, as my first time running the server was from the lazily-cased path.

Flow simply refusing to type check and erroring out with a message that the current path is incorrect (similar to the referenced issue) would obviously be preferable to a load of errors about module resolution, which are a bit of a red herring as they only mention relative paths.

Appears in 0.33.0 and 0.37.4 (latest).

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。