Cache MDX compiler in the Webpack loader #1468
Merged
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
A new MDX compiler was created for every file that’s processed. This means that any initialization logic in remark or rehype plugins was always run for every file.
By reusing the MDX compiler, remark and rehype plugins can run heavy setup logic once, just like when they are called by unified directly.
In practice I use this in remark-mermaidjs. This starts a browser once to process a bunch of files, but it requires the same unified processor to run to be able to do so.
The same principle is used in ts-loader to cache the TypeScript compiler.