Bundlers don’t implement module systems, they create scripts that emulate them. All any bundler does is reduce graphs. How is just implementation detail.
Bundlers don’t implement module systems, they create scripts that emulate them. All any bundler does is reduce graphs. How is just implementation detail.
The difference is mostly that in the latter case Metro can tell the difference between imports and requires, for things like Expo tree shaking, conditional resolution, and inlining.
The difference is mostly that in the latter case Metro can tell the difference between imports and requires, for things like Expo tree shaking, conditional resolution, and inlining.
But DX for us is about users building apps. Ease of bring-your-own-toolchain isn’t a DX goal.
If you use a framework it’s a non-issue, if you author a framework, build on the common core.
But DX for us is about users building apps. Ease of bring-your-own-toolchain isn’t a DX goal.
If you use a framework it’s a non-issue, if you author a framework, build on the common core.
The problem with the status quo is we talk about pre-compilation with no agreed target (Node LTS, browserslist, ES5?). Most pre-compiled node_modules wouldn’t run in Hermes, so we have to compile again.
The problem with the status quo is we talk about pre-compilation with no agreed target (Node LTS, browserslist, ES5?). Most pre-compiled node_modules wouldn’t run in Hermes, so we have to compile again.
Besides bundles being smaller and faster, publishing source is easier, and it’s more hackable and debug friendly.
With Bun+Node supporting TS directly and web still build reliant, we might see more of it.
Besides bundles being smaller and faster, publishing source is easier, and it’s more hackable and debug friendly.
With Bun+Node supporting TS directly and web still build reliant, we might see more of it.
In general, there are good arguments for preserving information. Pre-compiled is rarely optimally compiled. It’s just not the way the ecosystem has gone.
In general, there are good arguments for preserving information. Pre-compiled is rarely optimally compiled. It’s just not the way the ecosystem has gone.
(..which are also not respected in lazy comp, but the difference is pretty superficial - `[bytecode]` instead of `[native code]`)
(..which are also not respected in lazy comp, but the difference is pretty superficial - `[bytecode]` instead of `[native code]`)
Tzvetan’s confirmed it’s a Hermes bug and Static Hermes works, though.
Tzvetan’s confirmed it’s a Hermes bug and Static Hermes works, though.
Following up with Hermes as to whether that’s expected or a bug…
Following up with Hermes as to whether that’s expected or a bug…
DevTools though was built in the open by a dedicated team at Meta over many months. That was the only way we were going to ship the ground-up rewrite it needed.
DevTools though was built in the open by a dedicated team at Meta over many months. That was the only way we were going to ship the ground-up rewrite it needed.
If you don’t need to distinguish, just call them all “tests”.
If you don’t need to distinguish, just call them all “tests”.
If you had an AI testing framework that let you write “tap the most obvious button” -> “see confirmation page” you’d be a lot closer to e2e for human UIs.
If you had an AI testing framework that let you write “tap the most obvious button” -> “see confirmation page” you’d be a lot closer to e2e for human UIs.
An integration test is any test that isn’t a unit test.
e2e tests are the subset of integration tests that deal with user input to user-observable output/effect.
All relative to where the boundaries of your software are.
An integration test is any test that isn’t a unit test.
e2e tests are the subset of integration tests that deal with user input to user-observable output/effect.
All relative to where the boundaries of your software are.