Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 1.32 KB

README.md

File metadata and controls

47 lines (33 loc) · 1.32 KB

WhyDidRecompile

Why did some files get recompiled after I made a nonsubstantial change to a single file?

As an Elixir project becomes larger, recompilation during development can become slower and slower, because compile time dependencies creep in. Elixir's own mix xref task can help to analyze the situation, but identifying the dependencies involved can still be tedious.

This package contains a mix task that can answer the initial question.

Installation

Install as an archive:

mix archive.install github schnittchen/why_did_recompile

Usage

mix why_did_recompile --compiled=lib/my_project/a.ex --changed=lib/my_project/b.ex

will print out, if possible, a dependency chain from a.ex to b.ex that requires a.ex to recompile when b.ex changes.

Scope

Currently, export dependencies are treated as runtime dependencies.