Skip to content
This repository was archived by the owner on Apr 23, 2019. It is now read-only.
This repository was archived by the owner on Apr 23, 2019. It is now read-only.

Different files that yield same normalizedId collisions are not detected, production issues #142

@irae

Description

@irae

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions