vuejs/core
Packages
vuejs/core is a pnpm monorepo. Each public package under packages/ ships independently to npm, can be consumed standalone (e.g., @vue/reactivity outside Vue), and follows the import rules in patterns and conventions. Private packages under packages-private/ are dev tooling that stays in-repo.
Public packages
| Package | Source size | Tests | Page |
|---|---|---|---|
vue |
~146 lines (3 files) | 20 | vue |
@vue/reactivity |
~3,900 lines (13 files) | 16 | reactivity |
@vue/runtime-core |
~20,700 lines (65 files) | 45 | runtime-core |
@vue/runtime-dom |
~5,000 lines (17 files) | 16 | runtime-dom |
@vue/runtime-test |
~400 lines (5 files) | 1 | runtime-test |
@vue/server-renderer |
~1,300 lines (15 files) | 18 | server-renderer |
@vue/compiler-core |
~11,000 lines (30 files) | 21 | compiler-core |
@vue/compiler-dom |
~1,400 lines (16 files) | 13 | compiler-dom |
@vue/compiler-sfc |
~8,100 lines (30 files) | 20 | compiler-sfc |
@vue/compiler-ssr |
~2,250 lines (17 files) | 16 | compiler-ssr |
@vue/shared |
~1,100 lines (16 files) | 6 | shared |
vue-compat |
~210 lines (6 files) | 12 | vue-compat |
xychart-beta horizontal
title "Source lines per package"
x-axis ["vue-compat", "vue", "shared", "runtime-test", "server-renderer", "compiler-dom", "compiler-ssr", "reactivity", "runtime-dom", "compiler-sfc", "compiler-core", "runtime-core"]
y-axis "Lines of TypeScript"
bar [208, 146, 1088, 405, 1321, 1417, 2249, 3898, 5038, 8113, 11011, 20714]Private packages
| Package | Purpose |
|---|---|
packages-private/sfc-playground |
The Vite-based SFC playground deployed at https://play.vuejs.org. Run locally via pnpm dev-sfc. |
packages-private/template-explorer |
Compiler debugging tool deployed at https://template-explorer.vuejs.org. Run locally via pnpm dev-compiler. |
packages-private/dts-test |
Type-level tests run against built .d.ts files. Run via pnpm test-dts. |
packages-private/dts-built-test |
Smoke test that the built .d.ts files import cleanly in a separate tsconfig. |
packages-private/vite-debug |
Scratch Vite project for debugging. |
Dependency graph
graph TD
sfc["@vue/compiler-sfc"]
cdom["@vue/compiler-dom"]
cssr["@vue/compiler-ssr"]
ccore["@vue/compiler-core"]
vue["vue"]
rdom["@vue/runtime-dom"]
rcore["@vue/runtime-core"]
reactivity["@vue/reactivity"]
rtest["@vue/runtime-test"]
ssr["@vue/server-renderer"]
shared["@vue/shared"]
compat["vue-compat"]
sfc --> cdom
sfc --> ccore
cdom --> ccore
cssr --> cdom
rdom --> rcore
rcore --> reactivity
rtest --> rcore
ssr --> rcore
ssr --> shared
vue --> cdom
vue --> rdom
compat --> rdom
ccore --> shared
rcore --> shared
rdom --> sharedReading order
If you are new to the codebase, the recommended path through this section is:
- shared — small package, contains the bitmask flags everything else uses.
- reactivity — the foundation; understand
Dep,ReactiveEffect,ref,reactivefirst. - runtime-core — components, vnodes, scheduler, renderer.
- runtime-dom — short, mostly delegates to
runtime-core. - compiler-core — parser → transform → codegen pipeline.
- compiler-dom, compiler-ssr — incremental specializations.
- compiler-sfc — the SFC toolchain that ties templates, scripts, and styles together.
- server-renderer — the SSR side, easier once SFC and runtime-core are familiar.
- vue, vue-compat, runtime-test — small wrapper packages.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.