Skip to content

blog: CSS and HTML are built in - #8486

Open
alexander-akait wants to merge 4 commits into
mainfrom
blog/css-html-built-in
Open

alexander-akait wants to merge 4 commits into
mainfrom
blog/css-html-built-in

Conversation

@alexander-akait

@alexander-akait alexander-akait commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

Summary

A short blog post that says it directly. Since webpack 5.109.0, CSS and HTML are built in, stable and on by default, so these are no longer needed: css-loader, style-loader, mini-css-extract-plugin, css-minimizer-webpack-plugin, html-loader, html-webpack-plugin and html-minimizer-webpack-plugin. A post gets shared and linked in a way the guides alone don't, which helps search engines and AI assistants stop recommending the old setup.

Sections:

  • What you can remove: a table with each deprecated package and its built-in replacement.
  • CSS with no configuration.
  • Sass, Less, PostCSS and Tailwind: the before/after loader chain.
  • HTML pages with no plugin: an HTML entry and output.html.
  • Existing projects keep working: the 'auto' default, the @webpack/css-plugins-to-native-css codemod, and the migration guides.

File: src/content/blog/2026-11-06-css-and-html-are-built-in.mdx (sort: 20261106). I set contributors to alexander-akait; please adjust the byline and the date as you see fit.

Checked: Prettier, markdownlint, cspell and ESLint (code blocks) pass. All links point to existing guide sections.


Generated by Claude Code

Summary by CodeRabbit

  • Documentation
    • Added a guide to webpack’s built-in CSS and HTML support, covering CSS Modules, extraction, production minification, vendor prefixes, and HTML entries.
    • Explains how to use preprocessors with the CSS pipeline and identifies packages the guide says may no longer be needed.
    • Describes how existing CSS or HTML rules affect automatic built-in support, plus options for migrating legacy loader rules incrementally.

A short post saying it directly: since webpack 5.109.0 CSS and HTML are
built in, stable and on by default, so css-loader, style-loader,
mini-css-extract-plugin, css-minimizer-webpack-plugin, html-loader,
html-webpack-plugin and html-minimizer-webpack-plugin are no longer
needed. Covers the replacement for each, preprocessors, HTML entries and
`output.html`, the 'auto' default for existing projects, and the codemod.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013FhutTnKEPLYcuGNGNijRS
@vercel

vercel Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
webpack-js-org Ready Ready Preview Nov 6, 2026 6:11pm UTC

Request Review

@linux-foundation-easycla

linux-foundation-easycla Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

CLA Not Signed

One or more co-authors of this pull request were not found. You must specify co-authors in commit message trailer via:

Co-authored-by: name <email>

Supported Co-authored-by: formats include:

  1. Anything <id+login@users.noreply.github.com> - it will locate your GitHub user by id part.
  2. Anything <login@users.noreply.github.com> - it will locate your GitHub user by login part.
  3. Anything <public-email> - it will locate your GitHub user by public-email part. Note that this email must be made public on Github.
  4. Anything <other-email> - it will locate your GitHub user by other-email part but only if that email was used before for any other CLA as a main commit author.
  5. login <any-valid-email> - it will locate your GitHub user by login part, note that login part must be at least 3 characters long.

Alternatively, if the co-author should not be included, remove the Co-authored-by: line from the commit message.

Please update your commit message(s) by doing git commit --amend and then git push [--force] and then request re-running CLA check via commenting on this pull request:

/easycla

Copy link
Copy Markdown
Member Author

EasyCLA is failing. The reason is not the diff: it's the Co-Authored-By: Claude <noreply@anthropic.com> trailer on the commit, which has no signed CLA. #8483 and #8484 carried the same trailer and failed the same check before they were merged. Clearing it would mean rewriting the commit message and force-pushing, which I'll only do if the maintainers want that. The other checks are still running.


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Adds a blog post describing webpack’s built-in CSS and HTML support since version 5.109.0. It lists package replacements, CSS processing behavior, HTML entry and generation options, and configuration for using preprocessors with webpack’s CSS pipeline. It also describes how 'auto' settings interact with loaders in module.rules and provides migration links and a CSS codemod command.

Merge Risk: Minimal · up to 3ae94

This adds a documentation blog post and changes no runtime behavior. Earlier review feedback has been addressed. The EasyCLA check may need maintainer attention but does not affect the content.

Pre-merge checks: Passed 5

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title describes the blog post about built-in CSS and HTML support.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

src/content/blog/2026-11-06-css-and-html-are-built-in.mdx

typescript-eslint does not support TS 7.0.
Please see https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/#running-side-by-side-with-typescript-6.0 to run typescript-eslint using the TS 6 API.
See also typescript-eslint/typescript-eslint#10940 for tracking typescript-eslint's support for TS >=7.1

Oops! Something went wrong! :(

ESLint: 9.39.5

Error: typescript-eslint does not support TS 7.0.
at Object. (/.eslint-tmp/node_modules/@typescript-eslint/eslint-plugin/dist/index.js:50:11)
at Module._compile (node:internal/modules/cjs/loader:1929:14)
at Object..js (node:internal/modules/cjs/loader:2060:10)
at Module.load (node:internal/modules/cjs/loader:1651:32)
at Module._load (node:internal/modules/cjs/loader:1443:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:261:19)
at Module.require (node:internal/modules/cjs/loader:1674:12)
at require (node:internal/modules/helpers:157:16)
at /.eslint-tmp/node_modules/eslint-plugin-jest/lib/rules/unbound-method.js:13:28
at Object. (/.eslint-tmp/node_modules/eslint-plugin-jest/lib/rules/unbound-method.js:22:3)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4626d9c8-4352-4fb4-bfea-814f45a47f86
Commits

Reviewing files that changed from the base of the PR and between 4ffa323 and 3ae949e.

Files selected for processing: 1

  • src/content/blog/2026-11-06-css-and-html-are-built-in.mdx
Files skipped from review as they are similar to previous changes: 1

  • src/content/blog/2026-11-06-css-and-html-are-built-in.mdx

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 3 remain after this review.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 663ab191-dd7a-4294-8b3c-71454af773da
Commits

Reviewing files that changed from the base of the PR and between 411b987 and 84eda5a.

Files selected for processing: 1

  • src/content/blog/2026-11-06-css-and-html-are-built-in.mdx

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 6 remain after this review.

- Vendor prefixes are added for a `browserslist` target, not for every
  production build.
- Under `'auto'`, one remaining `css-loader` / `html-loader` rule keeps the
  built-in support off for the whole build; migrating rule by rule needs
  `experiments.css` / `experiments.html: true` and `type:
  "javascript/auto"` on the rules that keep the old loaders.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013FhutTnKEPLYcuGNGNijRS
Verified: webpack 5.109.0 emits CSS and HTML unminified in production,
5.110.0 minifies both. Matches the guides' FAQ (#8485).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013FhutTnKEPLYcuGNGNijRS

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b9749b46-bccf-4613-83cf-c35238e48ffc
Commits

Reviewing files that changed from the base of the PR and between 84eda5a and 4ffa323.

Files selected for processing: 1

  • src/content/blog/2026-11-06-css-and-html-are-built-in.mdx

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 5 remain after this review.

This branch was successfully deployed

1 active deployment
Preview — 3ae949e7 Deployed Nov 6, 2026 by vercel[bot]
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