fix(core): align Vue bundleless externals with plugin-vue#1579
Merged
Timeless0911 merged 3 commits intomainfrom Apr 8, 2026
Merged
fix(core): align Vue bundleless externals with plugin-vue#1579Timeless0911 merged 3 commits intomainfrom
Timeless0911 merged 3 commits intomainfrom
Conversation
Deploying rslib with
|
| Latest commit: |
020a529
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://59701278.rslib.pages.dev |
| Branch Preview URL: | https://fix-core-vue-plugin-vue.rslib.pages.dev |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates the repo’s Vue templates/examples/tests to @rsbuild/plugin-vue and updates Rslib’s bundleless externals behavior so Vue SFC loader internals don’t destabilize bundleless output paths, with added e2e coverage to validate runtime behavior.
Changes:
- Replace
rsbuild-plugin-unplugin-vueusage with@rsbuild/plugin-vueacross docs, templates, examples, and integration fixtures. - Adjust bundleless externals handling to keep
rspack-vue-loaderhelper/virtual requests bundled. - Add Playwright e2e coverage for Vue component examples (bundle + bundleless).
Reviewed changes
Copilot reviewed 29 out of 31 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| website/docs/zh/guide/solution/vue.mdx | Update Vue guide to use @rsbuild/plugin-vue. |
| website/docs/zh/config/rsbuild/plugins.mdx | Remove old Vue plugin references; keep @rsbuild/plugin-vue. |
| website/docs/en/guide/solution/vue.mdx | Update Vue guide to use @rsbuild/plugin-vue. |
| website/docs/en/config/rsbuild/plugins.mdx | Remove old Vue plugin references; keep @rsbuild/plugin-vue. |
| tests/package.json | Add @rsbuild/plugin-vue to test workspace deps. |
| tests/integration/vue/src/Button/Button.vue | Enable scoped styles for Vue integration coverage. |
| tests/integration/vue/rslib.config.ts | Switch integration fixture to pluginVue(). |
| tests/integration/vue/package.json | Swap Vue plugin dependency to @rsbuild/plugin-vue. |
| tests/integration/vue/index.test.ts | Update snapshots for @rsbuild/plugin-vue outputs (incl. scoped CSS + runtime). |
| tests/e2e/vue-component/tsconfig.json | Add TS config for Vue e2e fixture. |
| tests/e2e/vue-component/src/env.d.ts | Add .vue module typing for TS in e2e fixture. |
| tests/e2e/vue-component/src/BundleFalseApp.vue | Add bundleless consumer app entry component. |
| tests/e2e/vue-component/src/bundleFalse.ts | Add bundleless consumer app bootstrap. |
| tests/e2e/vue-component/src/BundleApp.vue | Add bundled consumer app entry component (incl. CSS import). |
| tests/e2e/vue-component/src/bundle.ts | Add bundled consumer app bootstrap. |
| tests/e2e/vue-component/rsbuild.config.ts | Add Rsbuild config using pluginVue() with two environments. |
| tests/e2e/vue-component/package.json | Add e2e workspace package for Vue example consumers. |
| tests/e2e/vue-component/index.pw.test.ts | Add Playwright assertions for Vue example rendering + styling. |
| tests/e2e/vue-component/.gitignore | Ignore generated public/ output for e2e fixture. |
| pnpm-lock.yaml | Update lockfile for plugin migration and dependency graph changes. |
| packages/create-rslib/template-vue-ts/rslib.config.ts | Switch template to pluginVue(). |
| packages/create-rslib/template-vue-ts/package.json | Replace old Vue plugin dependency with @rsbuild/plugin-vue. |
| packages/create-rslib/template-vue-js/rslib.config.ts | Switch template to pluginVue(). |
| packages/create-rslib/template-vue-js/package.json | Replace old Vue plugin dependency with @rsbuild/plugin-vue. |
| packages/core/src/config.ts | Keep rspack-vue-loader helper/virtual requests bundled in bundleless externals handling. |
| examples/vue-component-bundleless/src/CounterButton.vue | Add button class to support scoped styling assertions. |
| examples/vue-component-bundleless/rslib.config.ts | Switch example to pluginVue(). |
| examples/vue-component-bundleless/package.json | Replace old Vue plugin dependency with @rsbuild/plugin-vue. |
| examples/vue-component-bundle/src/CounterButton.vue | Add button class to support scoped styling assertions. |
| examples/vue-component-bundle/rslib.config.ts | Switch example to pluginVue(). |
| examples/vue-component-bundle/package.json | Replace old Vue plugin dependency with @rsbuild/plugin-vue. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
fi3ework
approved these changes
Apr 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Replace the Vue examples and templates with
@rsbuild/plugin-vue, and align Rslib's bundleless externals handling with Vue loader virtual requests.This keeps Vue bundleless outputs on stable
.jsand.csspaths while preserving the scoped-style helper output needed by@rsbuild/plugin-vue.Related Links
Checklist