Skip to content

Comments

docs: adding why-plugin-hook-filter in depth#6446

Merged
graphite-app[bot] merged 1 commit intomainfrom
10-07-doc_why-plugin-hook-filter
Oct 7, 2025
Merged

docs: adding why-plugin-hook-filter in depth#6446
graphite-app[bot] merged 1 commit intomainfrom
10-07-doc_why-plugin-hook-filter

Conversation

@IWANABETHATGUY
Copy link
Member

@IWANABETHATGUY IWANABETHATGUY commented Oct 7, 2025

@IWANABETHATGUY IWANABETHATGUY marked this pull request as ready for review October 7, 2025 13:33
Copy link
Member Author

IWANABETHATGUY commented Oct 7, 2025


How to use the Graphite Merge Queue

Add the label graphite: merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@IWANABETHATGUY IWANABETHATGUY changed the title doc: why-plugin-hook-filter doc: adding why-plugin-hook-filter in deepth Oct 7, 2025
@IWANABETHATGUY IWANABETHATGUY changed the title doc: adding why-plugin-hook-filter in deepth docs: adding why-plugin-hook-filter in deepth Oct 7, 2025
@netlify
Copy link

netlify bot commented Oct 7, 2025

Deploy Preview for rolldown-rs ready!

Name Link
🔨 Latest commit 35d9c4f
🔍 Latest deploy log https://app.netlify.com/projects/rolldown-rs/deploys/68e537b960c8360008909f00
😎 Deploy Preview https://deploy-preview-6446--rolldown-rs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Member

@hyf0 hyf0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@hyf0 hyf0 requested review from TheAlexLichter and Copilot October 7, 2025 13:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds comprehensive documentation explaining the performance benefits of plugin hook filters in Rolldown. The document demonstrates how JavaScript plugins can significantly slow down builds without proper filtering and shows the dramatic performance improvements achievable with filters.

  • Explains the bottleneck created by JavaScript plugins in Rolldown's parallel processing
  • Provides real-world benchmarks showing 3.74x performance improvement with filters
  • Includes detailed technical explanation of how filters work under the hood

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@IWANABETHATGUY IWANABETHATGUY force-pushed the 10-07-doc_why-plugin-hook-filter branch from dbe4ed3 to 5ee5a62 Compare October 7, 2025 13:45
@IWANABETHATGUY IWANABETHATGUY changed the title docs: adding why-plugin-hook-filter in deepth docs: adding why-plugin-hook-filter in depth Oct 7, 2025
@IWANABETHATGUY IWANABETHATGUY force-pushed the 10-07-doc_why-plugin-hook-filter branch from 5ee5a62 to 516e019 Compare October 7, 2025 14:10
@TheAlexLichter
Copy link
Collaborator

We already have a dedicated hook filters subsection. Could we maybe locate it there too (e.g. a dedicated why section)?

@IWANABETHATGUY
Copy link
Member Author

We already have a dedicated hook filters subsection. Could we maybe locate it there too (e.g., a dedicated why section)?

image

I think we already explained why (partially) at the beginning of hook-filters.md. If we add another section, it would look a little redundant (Separating it should also be better for the user to find the critical part quickly: how to make the bundler run faster). The new page provides more details on why it is slow with plugin, including an illustration and benchmark. For most developers, they may not want to know about it.

@IWANABETHATGUY
Copy link
Member Author

I will adding a friend link at the bottom of the page.

@IWANABETHATGUY
Copy link
Member Author

Now I add a bidirectional link for each of them.

@IWANABETHATGUY IWANABETHATGUY force-pushed the 10-07-doc_why-plugin-hook-filter branch from 516e019 to 3e377a7 Compare October 7, 2025 14:58
@TheAlexLichter
Copy link
Collaborator

Alright, that's fine 👍
Yes, then linking both ways is a good option.

Copy link
Collaborator

@TheAlexLichter TheAlexLichter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small remarks! Overall a great topic page 👍

@IWANABETHATGUY IWANABETHATGUY force-pushed the 10-07-doc_why-plugin-hook-filter branch from 67fa3be to 1855773 Compare October 7, 2025 15:33
@IWANABETHATGUY IWANABETHATGUY force-pushed the 10-07-doc_why-plugin-hook-filter branch from 1855773 to 77a8265 Compare October 7, 2025 15:37
@graphite-app
Copy link
Contributor

graphite-app bot commented Oct 7, 2025

Merge activity

@graphite-app graphite-app bot force-pushed the 10-07-doc_why-plugin-hook-filter branch from 77a8265 to 35d9c4f Compare October 7, 2025 15:54
@graphite-app graphite-app bot merged commit 35d9c4f into main Oct 7, 2025
25 checks passed
@graphite-app graphite-app bot deleted the 10-07-doc_why-plugin-hook-filter branch October 7, 2025 15:56
shulaoda pushed a commit that referenced this pull request Oct 13, 2025
## [1.0.0-beta.43] - 2025-10-13

### 🚀 Features

- add filterVitePlugins utility that uses to skip vite plugins using apply: "serve" (#6502) by @IWANABETHATGUY
- rolldown_plugin_vite_html: align partial can inline entry logic (#6500) by @shulaoda
- rolldown_plugin_vite_html: align get_imported_chunks logic (#6499) by @shulaoda
- rolldown_plugin_vite_html: align HtmlTagDescriptor (#6498) by @shulaoda
- rolldown_plugin_vite_html: align partial utility functions logic (#6497) by @shulaoda
- rolldown_html_vite_html: align partial inject chunk asset links logic (#6496) by @shulaoda
- rolldown_plugin_vite_html: align `processedHtml` logic (#6494) by @shulaoda
- add `nativeMagicString` options (#6469) by @IWANABETHATGUY
- rust: eagerly cleanup resources when calling `close` (#6483) by @hyf0
- rust: varify if bundler is closed for public API (#6481) by @hyf0
- replace [format] placeholder in chunk filename templates (#6476) by @elecmonkey
- implement synchronous JS callback invocation for paths function (#6474) by @IWANABETHATGUY
- rolldown_plugin_vite_html: align partial transform hook logic (#6471) by @shulaoda
- Support `output.paths` (#6470) by @IWANABETHATGUY
- rolldown_plugin_vite_html: align script urls handle logic (#6466) by @shulaoda
- add validation for `preserveEntrySignatures` with `includeDependenciesRecursively` option (#6468) by @hyf0
- rolldown_plugin_vite_html: align partial logic (#6465) by @shulaoda
- background sourcemap generation for Javascript transform hooks (#6293) by @IWANABETHATGUY
- rolldown_plugin_vite_html: handle style tag (#6464) by @shulaoda
- rolldown_plugin_vite_html: handle inline style attribute (#6463) by @shulaoda
- rolldown_plugin_vite_html: patially handle vite-ignore attribute (#6462) by @shulaoda
- dev/node: expose errors of `on_hmr_updatrs` to node (#6454) by @hyf0
- dev/node: expose errors of `on_output` to node (#6453) by @hyf0
- dev: expose hmr errors on `on_hmr_updatrs` callback (#6443) by @hyf0

### 🐛 Bug Fixes

- fallback sourcemap generation for `experimental.nativeMagicString: false` (#6488) by @IWANABETHATGUY
- take `resolve.modules` into account (#6484) by @Pickachu
- rolldown: increase tokio blocking threads size for watch mode (#6467) by @Brooooooklyn
- use len_utf16 in magic_string CharToByteMapper (#6461) by @IWANABETHATGUY
- pass `advancedChunks#includeDependenciesRecursively` to rust (#6448) by @hyf0
- dev: should compute hmr update correctly for multiple clients (#6442) by @hyf0
- allow specifying packageJsonPath in PluginContext.load (#6439) by @sapphi-red
- use transform.target as default for minify target when `minify: { compress: true }` (#6433) by @sapphi-red

### 🚜 Refactor

- extract background sourcemap handling into separate methods (#6501) by @IWANABETHATGUY
- rust: only expose methods of `Bundler` for public usage (#6480) by @hyf0
- dev/node: use napi object instead clss for `BindingClientHmrUpdate` (#6456) by @hyf0
- dev/node: improve `DevOnHmrUpdates` API (#6455) by @hyf0

### 📚 Documentation

- update team page and add acknowledgements page (#6495) by @hyf0
- restructure website and files (#6492) by @hyf0
- correct incorrect documentation about the config file (#6472) by @jsparkdev
- options: `experimental.strictExecutionOrder` (#6450) by @hyf0
- adding `why-plugin-hook-filter` in depth (#6446) by @IWANABETHATGUY

### ⚡ Performance

- rolldown: replace serde JSON string escape with simd impl (#6475) by @Brooooooklyn

### ⚙️ Miscellaneous Tasks

- docs: redirect removed path to new locations for compatibility (#6493) by @hyf0
- deps: lock file maintenance npm packages (#6490) by @renovate[bot]
- deps: update github-actions (major) (#6415) by @renovate[bot]
- deps: update github-actions (#6489) by @renovate[bot]
- rust: add comment for `DiagnosticOptions#stabilize_path` (#6447) by @hyf0
- rust: remove unused `BindingHmrOutput` (#6457) by @hyf0
- rolldown_plugin_vite_html: tweak `utils.rs` (#6460) by @shulaoda
- change node version to lts (#6435) by @iiio2
- rust/test: split hmr related structs into their own files (#6445) by @hyf0
- deps: update crate-ci/typos action to v1.38.1 (#6452) by @renovate[bot]
- rust/test: render hmr errors (#6444) by @hyf0
- examples: add `"type": "module"` in `package.json` (#6441) by @iiio2

### ❤️ New Contributors

* @Pickachu made their first contribution in [#6484](#6484)
* @elecmonkey made their first contribution in [#6476](#6476)
* @jsparkdev made their first contribution in [#6472](#6472)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants