Meeting Notes 2021-11-16 #858
afoxman
started this conversation in
Bundle Working Group
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Meeting Notes
Recording is posted to our Teams channel
Docs: Metro as a web bundler
Stripe is polishing the underlying code, and will then work on writing and upstreaming documentation.
Hash-based Metro module IDs
AirBNB wants to upstream, but no news yet.
Docs: Using the metro cache with S3
Microsoft to connect with AirBNB/Stripe to understand the system and document it.
Haste-map replacement experiments
Meta is incorporating plans into their roadmap.
Bundle-size reduction using tree-shaking and bundle-splitting
Callstack is using ESBuild with Webpack. Bundle-size redution compared to Webpack, but not vs. ESBuild standalone.
AirBNB experimented with Web tree-shaking and came close (70-80%) of the small bundle size produced by Webpack.
Expo for Web: ship as ES modules, then transpile for Expo. Expo uses Webpack which tree-shakes best with package.json fields like sideEffects. If Hermes had ES module support, it could improve tree-shaking.
Meta (Facebook) explored adding a module system to Hermes vs. currently using a polyfill to create a bundle. Investigating ideas around JS to JS transpilation and whole-program optimization.
require() cycle detection in Metro
PR is in progress (external author).
Bundle output formats: ES modules, Hermes byte-code, etc.
Meta: In the Web space, ES module production makes sense. In the react-native space, producing Hermes bytecode is the path forward. Still early days.
Metro: Roadmap
Most near-term work will be internal, and will lead to published work in the future. Working to align with React on a multi-platform framework.
Improve Metro docs and cleaning up code. Includes deep-dive articles on topics like module resolution and configuation options.
Interested in optimizing startup - decoupling Haste to eliminate crawl.
Node 17 "exports" and package.json visibility
Will have an impact on tools/projects which do module resolution. Developer community doesn't seem too happy with the whole thing.
Bug: nodejs/node#33460
Docs: https://nodejs.org/api/packages.html#conditional-exports
Beta Was this translation helpful? Give feedback.
All reactions