-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple Entry Points #71
Conversation
I'd love to hear more about what this change does (I'm not a Jenga expert) |
This is the one of the two steps that will enable multiple entry points. Currently, we don't track third party dependencies via the source files. We just read them from package.json and assume that they are being used. So we compile all dependencies regardless of whether they are necessary or not and include their artifacts while compiling and liniking. These assumptions worked okay till now because we are only dealing with one compiler. But when we have multiple entry points, some dependency may not be compiled by I have made one subtle assumption temporarily. I assume that packages have not declared any extra dependencies that they have not used. Is this an okay assumption? I guess you can't. |
But you just said:
And does this change track which files in my packages dependencies I use, or just the mere fact that I use the dependency in general? |
Sorry for the confusing statement. We don't any compile unused packages from your source and dependencies as well. In the next step, we want to link whatever have been compiled so far but this is different function we need to recompute the dependencies all over again for your source and dependencies. We can skip some of the computation here by assuming that packages don't over specify dependencies. And that's what I did in this PR. I know this feels very inconsistent. I'll change the code to just recompute everything. |
a115ef0
to
0f93afd
Compare
reasonml-old/rebel#71 breaks the current example repo requiring two small tweaks: - `src/Test.re` needs to be renamed to the default target `src/Index.re` - with multiple targets, we need to execute `app.native` instead of `app.out`
Fixes #36
Fixes #17