Skip to content

V5 WIP - do not merge#6657

Draft
johnjenkins wants to merge 207 commits intomainfrom
v5
Draft

V5 WIP - do not merge#6657
johnjenkins wants to merge 207 commits intomainfrom
v5

Conversation

@johnjenkins
Copy link
Copy Markdown
Contributor

What is the current behavior?

GitHub Issue Number: N/A

What is the new behavior?

Documentation

Does this introduce a breaking change?

  • Yes
  • No

Testing

Other information

johnjenkins and others added 30 commits April 1, 2026 23:26
* chore: swap out rollup with rolldown

* chore:

* chore: update all naming

* chore: fixup tests

* chore: optimizing

* chore:

* chore:

* chore:
* chore: remove es5 / systemjs output. Make cjs opt-in

* chore:

* chore:

* chore:

* chore:

* chore: fix tests

* chore:
* chore:

* chore: add swc wip

* chore: revert swc back to terser
* chore: v5 swap out autoprefixer for lightningcss

* chore:
* chore: remove all deprecated things

* chore: update tests
* chore: migrate component decorator to new explicit API

* chore:fix cli build (don't bundle ts)

* chore: fix tsconfig discovery

* chore: migrate runtime tests

* chore: migrate ssr

* chore:

* chore:

* chore:

* chore:

* chore:

* chore:

* chore: fixup unit tests

* chore: tests for closed shadow dom and patch options

* chore:

* chore:

* chore:

* chore:

* chore:

* chore:

* chore:

* chore:
* chore: v5 multi file `transpile()` and `transpileSync()`

* chore:
* chore: v5 watch / build improvements

* chore:
…ipInDev` (#6682)

* chore: v5 remove buildDist and buildDocs. Replace with per output `skipInDev`

* chore:
* chore: v5-add-other-dist-artifacts-to-skipInDev

* chore:

* chore:

* chore:
* chore: v5 output target modernization - rename and refactor

Major refactor to rename output targets for clarity and elevate sub-outputs
to first-class citizens, creating parity between distribution strategies.

**Naming changes:**
- `dist` → `loader-bundle` (lazy-loaded bundles + loader infrastructure)
- `dist-custom-elements` → `standalone` (individual ES modules)
- `dist-hydrate-script` → `ssr` (server-side rendering)
- `dist-collection` (sub) → `stencil-meta` (first-class, metadata output)
- `dist-types` (sub) → `types` (first-class, shared type definitions)

**Key changes:**
- Updated all constants with v5 names + deprecated v4 aliases
- Updated all type definitions (OutputTarget interfaces)
- Renamed validator files and updated their logic
- Renamed output target implementation directories
- Updated type guards with backward-compatible deprecated aliases
- Removed collectionDir/typesDir from loader-bundle config
- Updated default directories to dist/loader-bundle/, dist/standalone/, etc.

**Backward compatibility:**
- All deprecated v4 aliases maintained for migration period
- Will be removed in v6

**Documentation:**
- Added comprehensive "Output Target Modernization" section to V5_PLANNING.md
- Updated breaking changes documentation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: add auto-generation logic for types and stencil-meta outputs

Implement auto-generation of types and stencil-meta output targets in
production builds, elevating them to first-class citizens.

**Auto-generation behavior:**
- In production builds (!config.devMode), automatically add types and
  stencil-meta outputs if not explicitly configured by user
- User can override by explicitly adding these outputs to their config
- Both default to skipInDev: true for optimal dev performance

**Implementation:**
- Added autoGenerateOutputs() function in validateOutputTargets
- Created validate-types.ts for types output validation
- Default directories: dist/types/ and dist/stencil-meta/
- Maintains backward compatibility with explicit configs

This ensures parity between loader-bundle and standalone outputs,
as both now automatically get type definitions in production.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore:

* chore: remove un-required config options

* chore: tests pass

* chore: fix knip

* chore: new tests

* chore: new migration tests

* chore: removed --prod and devMode

* chore: add transpileStyle inline

* chore:

* Revert "chore: add transpileStyle inline"

This reverts commit 9cf68f4.

* chore: change collection / stencil-meta to stencil-rebundle

* chore: fixes for package.json checking / validations

* chore: rename file extensions - .cjs.js > .cjs, .esm.js > .js

* chore: update all 'collection' naming to 'rebundle'

* chore: rename dist-custom-elements related files to standalone

* chore: update testing

* chore: remove 'loader' dir. fix build tests

* chore: add esm.js to browser bundle for posterity

* chore: main work

* chore: tidy codebase

* chore: update all tests

* chore: fixup tests

* chore: better explicit global-style output options

* chore:

* chore: change all server bundle 'hydrate' refs to 'ssr'

* chore:

* chore: update default skipInDev behaviour

* chore: tidy up

* chore:

* chore:

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: deprecate `extras.addGlobalStyleToComponents`

* chore: add integration test

* chore: bump stencil playwright
* chore: rename all the 'hydrate' things to 'ssr'

* chore:

* chore:

* chore:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant