Sometimes, Mendel is resolving files in weird behavior. Although the problem is on my code, it is super hard to track and I only catch this in my CI environment. Here is a summary of the issue:
That's a redacted version of my actual repository.
src/client/base/selectors/
├──...
├── network
│ ├── index.js
│ └── ...
├── network.js
└── ...
Internally mendel represent both of those files with the same normalizedId of selectors/network.
In fact, my code reads require('../selectors/network').
The problem is worst because in development, it is inconsistent. For some developers it will give selectors/network/index.js and it will give selectors/network.js for others.
In production middleware it seems to be 100% consistent to selectors/network.js.
This behavior is not necessarily wrong by mendel. It is doing whatever it is capable of with a tough situation. Nevertheless, I think my compiled bundle could instead, at least in development, throw a meaningful invariant error, since I should not be doing this in my repository anyway.