Commit 446a848
authored
fix(esm-library): handle CSS modules in preserveModules (#13670)
CSS modules (native `experiments.css` or mini-css-extract) under
`output.library.preserveModules` caused either "chunk xxx should have at
least one file" or "Multiple assets emit different content to the same
filename". preserveModules set the JS filename_template on CSS chunks,
left chunks nameless so multiple CSS files collapsed onto `.css`, and
the ESM render phase emitted `import "__RSPACK_ESM_CHUNK_<id>"`
placeholders pointing at CSS-only chunks with no JS file.
Classify modules in preserve_modules by source_types and set
css_filename_template for CSS modules (preserving the `.css` extension
and source path), skip CSS-only modules/chunks in the ESM render paths
that emit JS-side requires / cross-chunk imports, and make
CssExtractRspackPlugin honor chunk.css_filename_template so preserveModules
can override its per-chunk filename.1 parent 375009f commit 446a848
27 files changed
Lines changed: 603 additions & 130 deletions
File tree
- crates
- rspack_core/src
- options
- rspack_plugin_esm_library/src
- packages/rspack-test-tools/src
- case
- tests/rspack-test/esmOutputCases/preserve-modules
- asset
- __snapshots__
- src
- components/button
- css-extract
- __snapshots__
- src
- components/button
- css
- __snapshots__
- src
- components/button
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
307 | 315 | | |
308 | 316 | | |
309 | 317 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
544 | 544 | | |
545 | 545 | | |
546 | 546 | | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
547 | 563 | | |
548 | 564 | | |
549 | 565 | | |
| |||
630 | 646 | | |
631 | 647 | | |
632 | 648 | | |
633 | | - | |
| 649 | + | |
634 | 650 | | |
635 | 651 | | |
636 | 652 | | |
| |||
654 | 670 | | |
655 | 671 | | |
656 | 672 | | |
657 | | - | |
| 673 | + | |
658 | 674 | | |
659 | 675 | | |
660 | 676 | | |
| |||
0 commit comments