Code Ownership

Ownership is measured by how many commits each author made to each file in the current tree. It highlights bus-factor risk (files only one person has ever touched) and where knowledge is concentrated. The bus factor is the smallest number of people who are, between them, primary owner of more than half of the files.

Files Tracked
2,891
in the current tree
Bus Factor
2
2 authors are primary owner of 1,463 of 2,891 files
Single-Owner Files
1,775
61.4% of tracked files
Contributors
1,186
authors who changed files

Bus factor risk — single-owner files

Files only one author has ever changed. The more a file has changed, the more knowledge is at risk if that person leaves.

FileSole ownerCommits
packages/vite/src/node/__tests__/plugins/oxc.spec.ts翠14
packages/vite/src/node/__tests__/plugins/pluginFilter.spec.ts翠5
playground/fs-serve/root/matrixTestResultPlugin.ts翠4
.github/workflows/semgrep.yml翠4
packages/plugin-legacy/src/__tests__/snippets.spec.ts翠4
playground/css/vite.config-lightningcss.js翠4
playground/devtools/package.jsonArlo4
playground/css/__tests__/lightningcss/lightningcss.spec.ts翠3
packages/vite/src/node/server/__tests__/moduleUrl.spec.ts翠3
packages/vite/src/node/server/moduleUrl.ts翠3
Table: the 100 most-changed of 1,775 single-owner files
FileSole ownerCommits
packages/vite/src/node/__tests__/plugins/oxc.spec.ts翠14
packages/vite/src/node/__tests__/plugins/pluginFilter.spec.ts翠5
playground/fs-serve/root/matrixTestResultPlugin.ts翠4
.github/workflows/semgrep.yml翠4
packages/plugin-legacy/src/__tests__/snippets.spec.ts翠4
playground/css/vite.config-lightningcss.js翠4
playground/devtools/package.jsonArlo4
playground/css/__tests__/lightningcss/lightningcss.spec.ts翠3
packages/vite/src/node/server/__tests__/moduleUrl.spec.ts翠3
packages/vite/src/node/server/moduleUrl.ts翠3
.github/workflows/zizmor.yml翠3
packages/vite/src/node/__tests__/fixtures/config/entry/vite.config.ts翠3
packages/vite/src/node/__tests__/plugins/assetImportMetaUrl.spec.ts翠3
playground/external/src/require-polyfill.js翠3
packages/vite/src/node/server/middlewares/__tests__/hostCheck.spec.ts翠3
packages/vite/src/node/__tests_dts__/config.ts翠3
docs/public/logo.svgEvan You3
LICENSEEvan You3
packages/vite/src/node/__tests__/optimizer/discoverBeforeListen.spec.ts翠2
packages/vite/src/node/plugins/esbuildBannerFooterCompatPlugin.ts翠2
playground/external/dep-that-imports/index.js翠2
playground/hmr/file-delete-restore/index.js翠2
playground/resolve/ts-extension/index-js.js翠2
playground/ssr/src/forked-deadlock/common-module.js翠2
playground/fs-serve/root/windows83Filename.ts翠2
playground/legacy/vite.config-modern-target.js翠2
playground/chunk-importmap/dynamic.js翠2
playground/optimize-deps/dep-with-optional-peer-dep-cjs/index.js翠2
.github/zizmor.yml翠2
.github/SECURITY.md翠2
docs/blog/announcing-vite8.md翠2
.github/copilot-instructions.md翠2
playground/hmr-root/vite.config.ts翠2
playground/lib/vite.named-exports.config.js翠2
playground/tailwind-v3/vite.config.ts翠2
playground/resolve-tsconfig-paths/vite.config.js翠2
playground/hmr-full-bundle-mode/hmr.js翠2
playground/json/dep-json-require/content.json翠2
playground/json/dep-json-require/index.js翠2
playground/json/dep-json-require/package.json翠2
playground/css-no-codesplit/__tests__/css-no-codesplit.spec.ts翠2
playground/hmr-root/__tests__/hmr-root.spec.ts翠2
packages/vite/types/internal/rollupTypeCompat.d.ts翠2
playground/tailwind-v3/package.json翠2
playground/optimize-deps/dep-incompatible/index.js翠2
playground/css/treeshake-scoped/index.html翠2
playground/css-lightningcss/css-url.css翠2
playground/css/css-js-dep/package.json翠2
playground/external/dep-that-imports/package.json翠2
playground/external/dep-that-requires/package.json翠2
playground/optimize-deps/dep-cjs-with-assets/package.json翠2
playground/resolve/browser-module-field1/package.json翠2
playground/ssr-noexternal/external-cjs/package.json翠2
playground/ssr-noexternal/require-external-cjs/main.js翠2
playground/ssr-noexternal/require-external-cjs/package.json翠2
playground/ssr-noexternal/src/entry-server.js翠2
playground/lazy-compilation/__tests__/lazy-compilation.spec.tsandrew2
packages/vite/src/node/__tests__/plugins/clientInjections.spec.tsandrew2
packages/vite/src/node/server/middlewares/notFound.tsBjorn Lu2
playground/js-sourcemap/test-ssr-dev.jsHiroshi Ogawa2
playground/devtools/vite.config.tsArlo2
playground/shims.d.tsAnthony Fu2
docs/public/og-image.jpgEvan You2
docs/.vitepress/theme/components/BlogIndex.vueEvan You2
playground/optimize-deps-no-discovery/vite.config.jspatak2
packages/create-vite/template-vue-ts/src/main.tspatak2
packages/create-vite/template-vue/src/main.jspatak2
playground/optimize-deps/long-file-name.js이채준 - CJ Lee2
playground/optimize-deps/longfilename/package.json이채준 - CJ Lee2
playground/worker/worker/main-url.jsyoho2
playground/dynamic-import/alias/hello.jsyoho2
playground/dynamic-import/alias/hi.jsyoho2
playground/vitestSetupUtils.ts翠1
playground/ssr-webworker/cjs-node-builtin/index.cjs翠1
playground/ssr-webworker/cjs-node-builtin/installed-node-builtin.cjs翠1
playground/ssr-webworker/cjs-node-builtin/package.json翠1
oxlint.config.ts翠1
packages/vite/src/node/server/middlewares/__tests__/fixtures/outside.html翠1
playground/css/preprocessor-import/components/_vars.scss翠1
playground/css/preprocessor-import/components/box.scss翠1
playground/css/preprocessor-import/main.css翠1
playground/optimize-deps/dep-not-js/deep-import.svelte翠1
playground/optimize-deps/dep-not-js/relative.svelte翠1
playground/optimize-deps/svelte-deep-import.js翠1
playground/fs-serve/root/safeModulePathPlugin.ts翠1
playground/html/protocol-relative.html翠1
playground/ssr-resolve/vite.config.mjs翠1
playground/assets/asset/emitted-worker.js翠1
playground/assets/nested/asset2.png翠1
packages/vite/src/node/__tests__/packages/build-project/asset.txt翠1
playground/worker/dce-test-importer.js翠1
playground/worker/dce-test-live-nested-worker.js翠1
playground/worker/dce-test-live-worker-importer.js翠1
playground/worker/dce-test-live-worker.js翠1
playground/worker/dce-test-nested-worker.js翠1
playground/worker/dce-test-worker.js翠1
playground/hmr/virtual-invalidation/dep.js翠1
playground/hmr/virtual-invalidation/parent.js翠1
scripts/detect-release.ts翠1
scripts/extract-changelog.ts翠1

Ownership by author

Primary owner = the author with the most commits to a file. Solely owned = files only that author has touched.

AuthorFiles ownedSolely ownedFiles touched
翠1,1454391,321
Anthony Fu318292714
patak18384589
Bjorn Lu165100586
Hiroshi Ogawa134122340
Vladimir110106212
Evan You6417205
Jerry Zhao6156163
Alexander Lichter5450205
andrew5445135
btea4635200
Arnaud Barré3915363
rixo303045
sun0day2920118
yoho2417104
Mateusz Burzyński211938
fi3ework209162
Marc MacLeod202037
Copilot171586
Alex Savelyev151316
Dunqing131152
zhangenming12012
shYkiSto10826
yangxingyuan101021
smeng99646

Showing top 25 of 1186 contributors.

Most shared files

Files touched by the most people — shared code where changes are most likely to need coordination.

FileContributorsPrimary ownerOwner share
packages/vite/src/node/plugins/css.ts121翠29.2%
pnpm-lock.yaml118翠36.1%
packages/vite/src/node/config.ts109翠26.2%
packages/vite/src/node/utils.ts107翠20.2%
packages/vite/src/node/server/index.ts97Evan You23.2%
docs/config/index.md95Evan You14.5%
packages/vite/src/node/build.ts89翠30.1%
packages/vite/package.json78翠31.3%
docs/guide/features.md73翠20.1%
package.json69Evan You45.1%
packages/vite/src/node/optimizer/index.ts67Evan You26.8%
packages/vite/src/node/plugins/html.ts65翠20.9%
packages/vite/src/node/plugins/importAnalysis.ts61翠19.6%
packages/vite/src/client/client.ts58Evan You22.1%
packages/vite/src/node/plugins/resolve.ts57Evan You28.9%
packages/vite/src/node/optimizer/scan.ts53Evan You22.5%
packages/vite/src/node/plugins/asset.ts50翠24.6%
packages/create-vite/src/index.ts50翠27.0%
docs/guide/index.md49翠14.1%
docs/guide/build.md49翠20.7%