mirror of https://github.com/status-im/metro.git
2446fe2211
Summary: This commit refactors the metro bundling logic to make the traversal of dependencies much more generic, to not depend on any assumption regarding dependency resolution, haste, or even about the transformer/caching system. So, the actual API of the `DeltaBundler` module (which will be extracted as a separate package in the near future) ends up being like this: ``` const graph = await deltaBundler.buildGraph( ['/root/entryPoint1.js', '/root/entryPoint2.js', /* ... */], { dependencyResolver: (from, to) => require('resolve').sync(to, {from}), // Use the standard nodejs resolver transformFn: filePath => await transformFileUsingWhateverIPrefer(filePath), }, ); ``` The only part that is still coupled with the `DependencyGraph` is the file listener (which is tied to JestHasteMap via `DependencyGraph`), which is going to be decoupled soon. From here, and once we have the new caching system fully rolled out and the old cache logic removed, we'll incorporate `jest-worker` and the caching system directly into the build graph logic, to end up extracting the whole `DeltaBundler` logic into its own package. From there we can potentially reuse it to create simpler/more focused bundlers for web/etc. Reviewed By: davidaurelio Differential Revision: D7617143 fbshipit-source-id: b7e1a71cd95043f6232b07f2e8c45dcd49f089f2 |
||
---|---|---|
.. | ||
metro | ||
metro-babel7-plugin-react-transform | ||
metro-babylon7 | ||
metro-cache | ||
metro-core | ||
metro-memory-fs | ||
metro-minify-uglify | ||
metro-resolver | ||
metro-source-map |