Viteのコードを読む - ディレクトリ構造とテスト実行
(全然ブログ書いてなかった...)
Viteのコードを読んでみようという試み
Viteが盛り上がっていて個人的にも使っているので中身を少しでも把握したい。
大変だろうけど、バージョンが上がりまくって機能追加されてからだと中身追うのも無理になりそうなので、今のうちに見れるだけ見てみるという試み。心が折れたらやめるかもしれない。
読む対象
- v2.8.3
- hash: e2349569cf96e506e0d5fff1d043727a77fdad70
ファイル一覧を眺める
とりあえず何も考えずに tree コマンドで列挙してみた
見てみる(クリックで展開)
.
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs
│ ├── blog
│ │ └── announcing-vite2.md
│ ├── config
│ │ └── index.md
│ ├── guide
│ │ ├── api-hmr.md
│ │ ├── api-javascript.md
│ │ ├── api-plugin.md
│ │ ├── assets.md
│ │ ├── backend-integration.md
│ │ ├── build.md
│ │ ├── comparisons.md
│ │ ├── dep-pre-bundling.md
│ │ ├── env-and-mode.md
│ │ ├── features.md
│ │ ├── index.md
│ │ ├── migration.md
│ │ ├── ssr.md
│ │ ├── static-deploy.md
│ │ ├── using-plugins.md
│ │ └── why.md
│ ├── images
│ │ ├── bundler.png
│ │ ├── esm.png
│ │ ├── graph.png
│ │ ├── vercel-configuration.png
│ │ └── vite-plugin-inspect.png
│ ├── index.md
│ ├── plugins
│ │ └── index.md
│ └── public
│ ├── _headers
│ ├── cypress.svg
│ ├── divriots.png
│ ├── logo.svg
│ ├── mux.svg
│ ├── plaid.svg
│ ├── stackblitz.svg
│ ├── tailwind-labs.svg
│ ├── vite.mp3
│ ├── voice.svg
│ └── vuejobs.png
├── jest.config.ts
├── netlify.toml
├── package.json
├── packages
│ ├── create-vite
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── __tests__
│ │ │ └── cli.spec.ts
│ │ ├── index.js
│ │ ├── package.json
│ │ ├── template-lit
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── favicon.svg
│ │ │ │ └── my-element.js
│ │ │ └── vite.config.js
│ │ ├── template-lit-ts
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── favicon.svg
│ │ │ │ ├── my-element.ts
│ │ │ │ └── vite-env.d.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.node.json
│ │ │ └── vite.config.ts
│ │ ├── template-preact
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── app.jsx
│ │ │ │ ├── favicon.svg
│ │ │ │ ├── index.css
│ │ │ │ ├── logo.jsx
│ │ │ │ └── main.jsx
│ │ │ └── vite.config.js
│ │ ├── template-preact-ts
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── app.tsx
│ │ │ │ ├── favicon.svg
│ │ │ │ ├── index.css
│ │ │ │ ├── logo.tsx
│ │ │ │ ├── main.tsx
│ │ │ │ ├── preact.d.ts
│ │ │ │ └── vite-env.d.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.node.json
│ │ │ └── vite.config.ts
│ │ ├── template-react
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── App.css
│ │ │ │ ├── App.jsx
│ │ │ │ ├── favicon.svg
│ │ │ │ ├── index.css
│ │ │ │ ├── logo.svg
│ │ │ │ └── main.jsx
│ │ │ └── vite.config.js
│ │ ├── template-react-ts
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── App.css
│ │ │ │ ├── App.tsx
│ │ │ │ ├── favicon.svg
│ │ │ │ ├── index.css
│ │ │ │ ├── logo.svg
│ │ │ │ ├── main.tsx
│ │ │ │ └── vite-env.d.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.node.json
│ │ │ └── vite.config.ts
│ │ ├── template-svelte
│ │ │ ├── README.md
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── jsconfig.json
│ │ │ ├── package.json
│ │ │ ├── public
│ │ │ │ └── favicon.ico
│ │ │ ├── src
│ │ │ │ ├── App.svelte
│ │ │ │ ├── assets
│ │ │ │ │ └── svelte.png
│ │ │ │ ├── lib
│ │ │ │ │ └── Counter.svelte
│ │ │ │ ├── main.js
│ │ │ │ └── vite-env.d.ts
│ │ │ └── vite.config.js
│ │ ├── template-svelte-ts
│ │ │ ├── README.md
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── public
│ │ │ │ └── favicon.ico
│ │ │ ├── src
│ │ │ │ ├── App.svelte
│ │ │ │ ├── assets
│ │ │ │ │ └── svelte.png
│ │ │ │ ├── lib
│ │ │ │ │ └── Counter.svelte
│ │ │ │ ├── main.ts
│ │ │ │ └── vite-env.d.ts
│ │ │ ├── svelte.config.js
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.node.json
│ │ │ └── vite.config.ts
│ │ ├── template-vanilla
│ │ │ ├── _gitignore
│ │ │ ├── favicon.svg
│ │ │ ├── index.html
│ │ │ ├── main.js
│ │ │ ├── package.json
│ │ │ └── style.css
│ │ ├── template-vanilla-ts
│ │ │ ├── _gitignore
│ │ │ ├── favicon.svg
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── main.ts
│ │ │ │ ├── style.css
│ │ │ │ └── vite-env.d.ts
│ │ │ └── tsconfig.json
│ │ ├── template-vue
│ │ │ ├── README.md
│ │ │ ├── _gitignore
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── public
│ │ │ │ └── favicon.ico
│ │ │ ├── src
│ │ │ │ ├── App.vue
│ │ │ │ ├── assets
│ │ │ │ │ └── logo.png
│ │ │ │ ├── components
│ │ │ │ │ └── HelloWorld.vue
│ │ │ │ └── main.js
│ │ │ └── vite.config.js
│ │ └── template-vue-ts
│ │ ├── README.md
│ │ ├── _gitignore
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── public
│ │ │ └── favicon.ico
│ │ ├── src
│ │ │ ├── App.vue
│ │ │ ├── assets
│ │ │ │ └── logo.png
│ │ │ ├── components
│ │ │ │ └── HelloWorld.vue
│ │ │ ├── env.d.ts
│ │ │ └── main.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.node.json
│ │ └── vite.config.ts
│ ├── playground
│ │ ├── alias
│ │ │ ├── __tests__
│ │ │ │ └── alias.spec.ts
│ │ │ ├── customResolver.js
│ │ │ ├── dir
│ │ │ │ ├── from-script-src.js
│ │ │ │ ├── module
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── package.json
│ │ │ │ ├── test.css
│ │ │ │ └── test.js
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── test.js
│ │ │ └── vite.config.js
│ │ ├── assets
│ │ │ ├── __tests__
│ │ │ │ └── assets.spec.ts
│ │ │ ├── css
│ │ │ │ ├── css-url.css
│ │ │ │ ├── fonts.css
│ │ │ │ ├── icons.css
│ │ │ │ ├── import.css
│ │ │ │ └── nested
│ │ │ │ └── at-imported-css-url.css
│ │ │ ├── fonts
│ │ │ │ ├── Inter-Italic.woff
│ │ │ │ └── Inter-Italic.woff2
│ │ │ ├── foo.js
│ │ │ ├── index.html
│ │ │ ├── nested
│ │ │ │ ├── asset.png
│ │ │ │ ├── fragment-bg.svg
│ │ │ │ ├── fragment.svg
│ │ │ │ ├── icon.png
│ │ │ │ └── �\203\206�\202��\203\210-測試-white\ space.png
│ │ │ ├── package.json
│ │ │ ├── static
│ │ │ │ ├── icon.png
│ │ │ │ ├── import-expression.js
│ │ │ │ ├── raw.css
│ │ │ │ └── raw.js
│ │ │ ├── vite.config.js
│ │ │ └── �\203\206�\202��\203\210-測試-white\ space.js
│ │ ├── backend-integration
│ │ │ ├── __tests__
│ │ │ │ └── backend-integration.spec.ts
│ │ │ ├── frontend
│ │ │ │ ├── entrypoints
│ │ │ │ │ ├── global.css
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── main.ts
│ │ │ │ ├── images
│ │ │ │ │ └── logo.png
│ │ │ │ └── styles
│ │ │ │ ├── background.css
│ │ │ │ └── tailwind.css
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── references.css
│ │ │ ├── tailwind.config.js
│ │ │ └── vite.config.js
│ │ ├── cli
│ │ │ ├── __tests__
│ │ │ │ ├── cli.spec.ts
│ │ │ │ └── serve.js
│ │ │ ├── index.html
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── vite.config.js
│ │ ├── cli-module
│ │ │ ├── __tests__
│ │ │ │ ├── cli-module.spec.ts
│ │ │ │ └── serve.js
│ │ │ ├── index.html
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ └── vite.config.js
│ │ ├── css
│ │ │ ├── __tests__
│ │ │ │ └── css.spec.ts
│ │ │ ├── async-treeshaken.css
│ │ │ ├── async-treeshaken.js
│ │ │ ├── async.css
│ │ │ ├── async.js
│ │ │ ├── composed.module.css
│ │ │ ├── composed.module.less
│ │ │ ├── composed.module.scss
│ │ │ ├── composes-path-resolving.module.css
│ │ │ ├── css-dep
│ │ │ │ ├── index.css
│ │ │ │ ├── index.js
│ │ │ │ ├── index.scss
│ │ │ │ ├── index.styl
│ │ │ │ └── package.json
│ │ │ ├── dep.css
│ │ │ ├── glob-dep
│ │ │ │ ├── bar.css
│ │ │ │ └── foo.css
│ │ │ ├── glob-dep.css
│ │ │ ├── imported-at-import.css
│ │ │ ├── imported.css
│ │ │ ├── index.html
│ │ │ ├── inlined.css
│ │ │ ├── less.less
│ │ │ ├── linked-at-import.css
│ │ │ ├── linked.css
│ │ │ ├── main.js
│ │ │ ├── minify.css
│ │ │ ├── mod.module.css
│ │ │ ├── mod.module.scss
│ │ │ ├── nested
│ │ │ │ ├── _index.scss
│ │ │ │ ├── _partial.scss
│ │ │ │ ├── icon.png
│ │ │ │ ├── nested.less
│ │ │ │ └── nested.styl
│ │ │ ├── ok.png
│ │ │ ├── options
│ │ │ │ ├── absolute-import.styl
│ │ │ │ └── relative-import.styl
│ │ │ ├── package.json
│ │ │ ├── pkg-dep
│ │ │ │ ├── _index.scss
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── postcss-caching
│ │ │ │ ├── blue-app
│ │ │ │ │ ├── imported.css
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── main.js
│ │ │ │ │ ├── package.json
│ │ │ │ │ └── postcss.config.js
│ │ │ │ ├── css.spec.ts
│ │ │ │ └── green-app
│ │ │ │ ├── imported.css
│ │ │ │ ├── index.html
│ │ │ │ ├── main.js
│ │ │ │ ├── package.json
│ │ │ │ └── postcss.config.js
│ │ │ ├── postcss.config.js
│ │ │ ├── sass.scss
│ │ │ ├── stylus.styl
│ │ │ └── vite.config.js
│ │ ├── css-codesplit
│ │ │ ├── __tests__
│ │ │ │ └── css-codesplit.spec.ts
│ │ │ ├── index.html
│ │ │ ├── main.css
│ │ │ ├── main.js
│ │ │ ├── other.js
│ │ │ ├── package.json
│ │ │ ├── style.css
│ │ │ └── vite.config.js
│ │ ├── css-codesplit-cjs
│ │ │ ├── __tests__
│ │ │ │ └── css-codesplit.spec.ts
│ │ │ ├── index.html
│ │ │ ├── main.css
│ │ │ ├── main.js
│ │ │ ├── other.js
│ │ │ ├── package.json
│ │ │ ├── style.css
│ │ │ └── vite.config.js
│ │ ├── data-uri
│ │ │ ├── __tests__
│ │ │ │ └── data-uri.spec.ts
│ │ │ ├── index.html
│ │ │ └── package.json
│ │ ├── define
│ │ │ ├── __tests__
│ │ │ │ └── define.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ └── vite.config.js
│ │ ├── dynamic-import
│ │ │ ├── __tests__
│ │ │ │ └── dynamic-import.spec.ts
│ │ │ ├── css
│ │ │ │ └── index.css
│ │ │ ├── index.html
│ │ │ ├── mxd.js
│ │ │ ├── mxd.json
│ │ │ ├── nested
│ │ │ │ ├── index.js
│ │ │ │ └── shared.js
│ │ │ ├── package.json
│ │ │ ├── qux.js
│ │ │ ├── views
│ │ │ │ ├── bar.js
│ │ │ │ ├── baz.js
│ │ │ │ └── foo.js
│ │ │ └── vite.config.js
│ │ ├── env
│ │ │ ├── __tests__
│ │ │ │ └── env.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ └── vite.config.js
│ │ ├── extensions
│ │ │ ├── __tests__
│ │ │ │ └── extensions.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ └── vite.config.js
│ │ ├── file-delete-restore
│ │ │ ├── App.jsx
│ │ │ ├── Child.jsx
│ │ │ ├── __tests__
│ │ │ │ └── file-delete-restore.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ └── vite.config.js
│ │ ├── fs-serve
│ │ │ ├── __tests__
│ │ │ │ └── fs-serve.spec.ts
│ │ │ ├── entry.js
│ │ │ ├── nested
│ │ │ │ └── foo.js
│ │ │ ├── package.json
│ │ │ ├── root
│ │ │ │ ├── src
│ │ │ │ │ ├── index.html
│ │ │ │ │ └── safe.txt
│ │ │ │ ├── unsafe.txt
│ │ │ │ └── vite.config.js
│ │ │ ├── safe.json
│ │ │ └── unsafe.json
│ │ ├── glob-import
│ │ │ ├── __tests__
│ │ │ │ └── glob-import.spec.ts
│ │ │ ├── dir
│ │ │ │ ├── baz.json
│ │ │ │ ├── foo.js
│ │ │ │ ├── index.js
│ │ │ │ ├── nested
│ │ │ │ │ └── bar.js
│ │ │ │ └── node_modules
│ │ │ │ └── hoge.js
│ │ │ ├── index.html
│ │ │ └── package.json
│ │ ├── hmr
│ │ │ ├── __tests__
│ │ │ │ └── hmr.spec.ts
│ │ │ ├── customFile.js
│ │ │ ├── global.css
│ │ │ ├── hmr.js
│ │ │ ├── hmrDep.js
│ │ │ ├── hmrNestedDep.js
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── unicode-path
│ │ │ │ └── 中�\226\207-�\201��\201��\202\223�\201\224-�\225\234�\200-�\237\214\225�\237\214\226�\237\214\227
│ │ │ │ └── index.html
│ │ │ └── vite.config.js
│ │ ├── html
│ │ │ ├── __tests__
│ │ │ │ └── html.spec.ts
│ │ │ ├── common.css
│ │ │ ├── emptyAttr.html
│ │ │ ├── foo.html
│ │ │ ├── index.html
│ │ │ ├── inline
│ │ │ │ ├── common.js
│ │ │ │ ├── dep1.js
│ │ │ │ ├── dep2.js
│ │ │ │ ├── dep3.js
│ │ │ │ ├── module-graph.dot
│ │ │ │ ├── shared-1.html
│ │ │ │ ├── shared-2.html
│ │ │ │ ├── shared.js
│ │ │ │ ├── unique.html
│ │ │ │ └── unique.js
│ │ │ ├── invalid.html
│ │ │ ├── link.html
│ │ │ ├── main.css
│ │ │ ├── main.js
│ │ │ ├── nested
│ │ │ │ ├── index.html
│ │ │ │ ├── nested.css
│ │ │ │ └── nested.js
│ │ │ ├── noBody.html
│ │ │ ├── noHead.html
│ │ │ ├── package.json
│ │ │ ├── scriptAsync.html
│ │ │ ├── scriptMixed.html
│ │ │ ├── shared.js
│ │ │ ├── unicode-path
│ │ │ │ └── 中�\226\207-�\201��\201��\202\223�\201\224-�\225\234�\200-�\237\214\225�\237\214\226�\237\214\227
│ │ │ │ └── index.html
│ │ │ ├── vite.config.js
│ │ │ └── zeroJS.html
│ │ ├── json
│ │ │ ├── __tests__
│ │ │ │ └── json.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── public
│ │ │ │ └── public.json
│ │ │ └── test.json
│ │ ├── legacy
│ │ │ ├── __tests__
│ │ │ │ ├── legacy.spec.ts
│ │ │ │ └── ssr
│ │ │ │ ├── legacy-ssr.spec.ts
│ │ │ │ └── serve.js
│ │ │ ├── async.js
│ │ │ ├── entry-server.js
│ │ │ ├── immutable-chunk.js
│ │ │ ├── index.html
│ │ │ ├── main.js
│ │ │ ├── package.json
│ │ │ ├── style.css
│ │ │ ├── vite.config-custom-filename.js
│ │ │ └── vite.config.js
│ │ ├── lib
│ │ │ ├── __tests__
│ │ │ │ ├── lib.spec.ts
│ │ │ │ └── serve.js
│ │ │ ├── index.dist.html
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── main.js
│ │ │ │ ├── main2.js
│ │ │ │ └── message.js
│ │ │ ├── vite.config.js
│ │ │ └── vite.dyimport.config.js
│ │ ├── multiple-entrypoints
│ │ │ ├── __tests__
│ │ │ │ └── multiple-entrypoints.spec.ts
│ │ │ ├── deps.json
│ │ │ ├── dynamic-a.js
│ │ │ ├── dynamic-b.js
│ │ │ ├── entrypoints
│ │ │ │ ├── a0.js
│ │ │ │ ├── a1.js
│ │ │ │ ├── a10.js
│ │ │ │ ├── a11.js
│ │ │ │ ├── a12.js
│ │ │ │ ├── a13.js
│ │ │ │ ├── a14.js
│ │ │ │ ├── a15.js
│ │ │ │ ├── a16.js
│ │ │ │ ├── a17.js
│ │ │ │ ├── a18.js
│ │ │ │ ├── a19.js
│ │ │ │ ├── a2.js
│ │ │ │ ├── a20.js
│ │ │ │ ├── a21.js
│ │ │ │ ├── a22.js
│ │ │ │ ├── a23.js
│ │ │ │ ├── a24.js
│ │ │ │ ├── a3.js
│ │ │ │ ├── a4.js
│ │ │ │ ├── a5.js
│ │ │ │ ├── a6.js
│ │ │ │ ├── a7.js
│ │ │ │ ├── a8.js
│ │ │ │ └── a9.js
│ │ │ ├── index.html
│ │ │ ├── index.js
│ │ │ ├── package.json
│ │ │ ├── reference.js
│ │ │ ├── reference.scss
│ │ │ └── vite.config.js
│ │ ├── nested-deps
│ │ │ ├── __tests__
│ │ │ │ └── nested-deps.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── test-package-a
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── test-package-b
│ │ │ │ ├── index.js
│ │ │ │ ├── node_modules
│ │ │ │ │ └── test-package-a
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── package.json
│ │ │ │ └── package.json
│ │ │ ├── test-package-c
│ │ │ │ ├── index-es.js
│ │ │ │ ├── index.js
│ │ │ │ ├── package.json
│ │ │ │ └── side.js
│ │ │ ├── test-package-d
│ │ │ │ ├── index.js
│ │ │ │ ├── package.json
│ │ │ │ └── test-package-d-nested
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── test-package-e
│ │ │ │ ├── index.js
│ │ │ │ ├── package.json
│ │ │ │ ├── test-package-e-excluded
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── package.json
│ │ │ │ └── test-package-e-included
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ └── vite.config.js
│ │ ├── optimize-deps
│ │ │ ├── __tests__
│ │ │ │ └── optimize-deps.spec.ts
│ │ │ ├── cjs-dynamic.js
│ │ │ ├── cjs.js
│ │ │ ├── dedupe.js
│ │ │ ├── dep-cjs-compiled-from-cjs
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── dep-cjs-compiled-from-esm
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── dep-esbuild-plugin-transform
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── dep-linked
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── dep-linked-include
│ │ │ │ ├── Test.vue
│ │ │ │ ├── foo.js
│ │ │ │ ├── index.mjs
│ │ │ │ ├── package.json
│ │ │ │ └── test.css
│ │ │ ├── glob
│ │ │ │ └── foo.js
│ │ │ ├── index.html
│ │ │ ├── nested-exclude
│ │ │ │ ├── index.js
│ │ │ │ ├── nested-include
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── package.json
│ │ │ │ └── package.json
│ │ │ ├── package.json
│ │ │ └── vite.config.js
│ │ ├── optimize-missing-deps
│ │ │ ├── __test__
│ │ │ │ ├── optimize-missing-deps.spec.ts
│ │ │ │ └── serve.js
│ │ │ ├── index.html
│ │ │ ├── main.js
│ │ │ ├── missing-dep
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── multi-entry-dep
│ │ │ │ ├── index.browser.js
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── package.json
│ │ │ └── server.js
│ │ ├── package.json
│ │ ├── preload
│ │ │ ├── __tests__
│ │ │ │ └── preload.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── router.js
│ │ │ ├── src
│ │ │ │ ├── App.vue
│ │ │ │ └── components
│ │ │ │ ├── About.vue
│ │ │ │ ├── Hello.vue
│ │ │ │ └── Home.vue
│ │ │ └── vite.config.js
│ │ ├── preserve-symlinks
│ │ │ ├── __tests__
│ │ │ │ └── preserve-symlinks.spec.ts
│ │ │ ├── index.html
│ │ │ ├── moduleA
│ │ │ │ ├── linked.js -> ./src/index.js
│ │ │ │ ├── package.json
│ │ │ │ └── src
│ │ │ │ ├── data.js
│ │ │ │ └── index.js
│ │ │ ├── package.json
│ │ │ └── src
│ │ │ └── main.js
│ │ ├── react
│ │ │ ├── App.jsx
│ │ │ ├── __tests__
│ │ │ │ └── react.spec.ts
│ │ │ ├── components
│ │ │ │ └── Dummy.jsx
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ └── vite.config.ts
│ │ ├── react-emotion
│ │ │ ├── App.jsx
│ │ │ ├── __tests__
│ │ │ │ └── react.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ └── vite.config.ts
│ │ ├── resolve
│ │ │ ├── __tests__
│ │ │ │ └── resolve.spec.ts
│ │ │ ├── browser-field
│ │ │ │ ├── multiple.dot.path.js
│ │ │ │ ├── no-ext-index
│ │ │ │ │ └── index.js
│ │ │ │ ├── no-ext.js
│ │ │ │ ├── not-browser.js
│ │ │ │ ├── out
│ │ │ │ │ ├── cjs.node.js
│ │ │ │ │ └── esm.browser.js
│ │ │ │ ├── package.json
│ │ │ │ └── relative.js
│ │ │ ├── config-dep.js
│ │ │ ├── custom-condition
│ │ │ │ ├── index.custom.js
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── custom-ext.es
│ │ │ ├── custom-main-field
│ │ │ │ ├── index.custom.js
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── dir
│ │ │ │ └── index.js
│ │ │ ├── dir-with-ext
│ │ │ │ └── index.js
│ │ │ ├── dir-with-ext.js
│ │ │ │ └── empty
│ │ │ ├── dir.js
│ │ │ ├── exact-extension
│ │ │ │ ├── file.js
│ │ │ │ └── file.js.js
│ │ │ ├── exports-env
│ │ │ │ ├── browser.js
│ │ │ │ ├── browser.mjs
│ │ │ │ ├── browser.prod.mjs
│ │ │ │ ├── fallback.umd.js
│ │ │ │ └── package.json
│ │ │ ├── exports-path
│ │ │ │ ├── cjs.js
│ │ │ │ ├── deep.js
│ │ │ │ ├── dir
│ │ │ │ │ └── dir.js
│ │ │ │ ├── main.js
│ │ │ │ └── package.json
│ │ │ ├── index.html
│ │ │ ├── inline-package
│ │ │ │ ├── inline.js
│ │ │ │ └── package.json
│ │ │ ├── package.json
│ │ │ ├── ts-extension
│ │ │ │ ├── hello.ts
│ │ │ │ └── index.ts
│ │ │ ├── utf8-bom
│ │ │ │ └── main.js
│ │ │ ├── util
│ │ │ │ ├── bar.util.js
│ │ │ │ └── index.js
│ │ │ └── vite.config.js
│ │ ├── resolve-config
│ │ │ ├── __tests__
│ │ │ │ ├── resolve-config.spec.ts
│ │ │ │ └── serve.js
│ │ │ ├── package.json
│ │ │ └── root
│ │ │ ├── index.js
│ │ │ └── vite.config.js
│ │ ├── resolve-linked
│ │ │ ├── dep.js
│ │ │ ├── package.json
│ │ │ └── src
│ │ │ └── index.js
│ │ ├── shims.d.ts
│ │ ├── ssr-deps
│ │ │ ├── __tests__
│ │ │ │ ├── serve.js
│ │ │ │ └── ssr-deps.spec.ts
│ │ │ ├── define-properties-exports
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── define-property-exports
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── forwarded-export
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── index.html
│ │ │ ├── message
│ │ │ ├── object-assigned-exports
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── only-object-assigned-exports
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── package.json
│ │ │ ├── primitive-export
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── read-file-content
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── require-absolute
│ │ │ │ ├── foo.js
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── server.js
│ │ │ ├── src
│ │ │ │ └── app.js
│ │ │ └── ts-transpiled-exports
│ │ │ ├── index.js
│ │ │ └── package.json
│ │ ├── ssr-html
│ │ │ ├── __tests__
│ │ │ │ ├── serve.js
│ │ │ │ └── ssr-html.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── server.js
│ │ │ └── src
│ │ │ └── app.js
│ │ ├── ssr-pug
│ │ │ ├── __tests__
│ │ │ │ ├── serve.js
│ │ │ │ └── ssr-pug.spec.ts
│ │ │ ├── index.pug
│ │ │ ├── package.json
│ │ │ ├── server.js
│ │ │ └── src
│ │ │ └── app.js
│ │ ├── ssr-react
│ │ │ ├── __tests__
│ │ │ │ ├── serve.js
│ │ │ │ └── ssr-react.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── prerender.js
│ │ │ ├── server.js
│ │ │ ├── src
│ │ │ │ ├── App.jsx
│ │ │ │ ├── add.js
│ │ │ │ ├── circular-dep-init
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── circular-dep-init.js
│ │ │ │ │ ├── module-a.js
│ │ │ │ │ └── module-b.js
│ │ │ │ ├── entry-client.jsx
│ │ │ │ ├── entry-server.jsx
│ │ │ │ ├── forked-deadlock
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── common-module.js
│ │ │ │ │ ├── deadlock-fuse-module.js
│ │ │ │ │ ├── fuse-stuck-bridge-module.js
│ │ │ │ │ ├── middle-module.js
│ │ │ │ │ └── stuck-module.js
│ │ │ │ ├── multiply.js
│ │ │ │ └── pages
│ │ │ │ ├── About.jsx
│ │ │ │ ├── Env.jsx
│ │ │ │ └── Home.jsx
│ │ │ └── vite.config.js
│ │ ├── ssr-vue
│ │ │ ├── __tests__
│ │ │ │ ├── serve.js
│ │ │ │ └── ssr-vue.spec.ts
│ │ │ ├── dep-import-type
│ │ │ │ ├── deep
│ │ │ │ │ └── index.d.ts
│ │ │ │ └── package.json
│ │ │ ├── example-external-component
│ │ │ │ ├── ExampleExternalComponent.vue
│ │ │ │ ├── index.js
│ │ │ │ └── package.json
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── prerender.js
│ │ │ ├── server.js
│ │ │ ├── src
│ │ │ │ ├── App.vue
│ │ │ │ ├── assets
│ │ │ │ │ ├── button.css
│ │ │ │ │ ├── fonts
│ │ │ │ │ │ ├── Inter-Italic.woff
│ │ │ │ │ │ └── Inter-Italic.woff2
│ │ │ │ │ └── logo.png
│ │ │ │ ├── components
│ │ │ │ │ ├── Foo.jsx
│ │ │ │ │ ├── ImportType.vue
│ │ │ │ │ ├── button.js
│ │ │ │ │ └── foo.css
│ │ │ │ ├── entry-client.js
│ │ │ │ ├── entry-server.js
│ │ │ │ ├── main.js
│ │ │ │ ├── pages
│ │ │ │ │ ├── About.vue
│ │ │ │ │ ├── External.vue
│ │ │ │ │ ├── Home.vue
│ │ │ │ │ └── Store.vue
│ │ │ │ └── router.js
│ │ │ ├── vite.config.js
│ │ │ └── vite.config.noexternal.js
│ │ ├── ssr-webworker
│ │ │ ├── __tests__
│ │ │ │ ├── serve.js
│ │ │ │ └── ssr-webworker.spec.ts
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ └── entry-worker.jsx
│ │ │ ├── vite.config.js
│ │ │ └── worker.js
│ │ ├── tailwind
│ │ │ ├── __test__
│ │ │ │ └── tailwind.spec.ts
│ │ │ ├── index.css
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── postcss.config.js
│ │ │ ├── public
│ │ │ │ └── favicon.ico
│ │ │ ├── src
│ │ │ │ ├── App.vue
│ │ │ │ ├── assets
│ │ │ │ │ └── logo.png
│ │ │ │ ├── components
│ │ │ │ │ └── HelloWorld.vue
│ │ │ │ ├── main.js
│ │ │ │ ├── router.ts
│ │ │ │ └── views
│ │ │ │ └── Page.vue
│ │ │ ├── tailwind.config.js
│ │ │ └── vite.config.ts
│ │ ├── testUtils.ts
│ │ ├── tsconfig-json
│ │ │ ├── __tests__
│ │ │ │ └── tsconfig-json.spec.ts
│ │ │ ├── index.html
│ │ │ ├── nested
│ │ │ │ ├── main.ts
│ │ │ │ ├── not-used-type.ts
│ │ │ │ └── tsconfig.json
│ │ │ ├── nested-with-extends
│ │ │ │ ├── main.ts
│ │ │ │ ├── not-used-type.ts
│ │ │ │ └── tsconfig.json
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ ├── main.ts
│ │ │ │ └── not-used-type.ts
│ │ │ └── tsconfig.json
│ │ ├── tsconfig-json-load-error
│ │ │ ├── __tests__
│ │ │ │ └── tsconfig-json-load-error.spec.ts
│ │ │ ├── has-error
│ │ │ │ ├── main.ts
│ │ │ │ └── tsconfig.json
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ │ └── main.ts
│ │ │ └── tsconfig.json
│ │ ├── tsconfig.json
│ │ ├── vue
│ │ │ ├── Assets.vue
│ │ │ ├── AsyncComponent.vue
│ │ │ ├── CssModules.vue
│ │ │ ├── CustomBlock.vue
│ │ │ ├── CustomBlockPlugin.ts
│ │ │ ├── CustomElement.ce.vue
│ │ │ ├── Hmr.vue
│ │ │ ├── Main.vue
│ │ │ ├── Node.vue
│ │ │ ├── PreProcessors.vue
│ │ │ ├── ReactivityTransform.vue
│ │ │ ├── ScanDep.vue
│ │ │ ├── Slotted.vue
│ │ │ ├── Syntax.vue
│ │ │ ├── __tests__
│ │ │ │ └── vue.spec.ts
│ │ │ ├── assets
│ │ │ │ ├── asset.png
│ │ │ │ └── fragment.svg
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── public
│ │ │ │ └── icon.png
│ │ │ ├── setup-import-template
│ │ │ │ ├── SetupImportTemplate.vue
│ │ │ │ └── template.html
│ │ │ ├── src-import
│ │ │ │ ├── SrcImport.vue
│ │ │ │ ├── script.ts
│ │ │ │ ├── srcImportStyle.vue
│ │ │ │ ├── srcImportStyle2.vue
│ │ │ │ ├── style.css
│ │ │ │ ├── style2.css
│ │ │ │ └── template.html
│ │ │ └── vite.config.ts
│ │ ├── vue-jsx
│ │ │ ├── Comp.tsx
│ │ │ ├── Comps.jsx
│ │ │ ├── OtherExt.tesx
│ │ │ ├── Script.vue
│ │ │ ├── SrcImport.jsx
│ │ │ ├── SrcImport.vue
│ │ │ ├── __tests__
│ │ │ │ └── vue-jsx.spec.ts
│ │ │ ├── index.html
│ │ │ ├── main.jsx
│ │ │ ├── package.json
│ │ │ └── vite.config.js
│ │ ├── vue-lib
│ │ │ ├── __tests__
│ │ │ │ ├── serve.js
│ │ │ │ └── vue-lib.spec.ts
│ │ │ ├── index.html
│ │ │ ├── package.json
│ │ │ ├── src-consumer
│ │ │ │ └── index.ts
│ │ │ ├── src-lib
│ │ │ │ ├── CompA.vue
│ │ │ │ ├── CompB.vue
│ │ │ │ └── index.ts
│ │ │ ├── vite.config.consumer.ts
│ │ │ └── vite.config.lib.ts
│ │ ├── wasm
│ │ │ ├── __tests__
│ │ │ │ └── wasm.spec.ts
│ │ │ ├── heavy.wasm
│ │ │ ├── heavy.wasm.map
│ │ │ ├── index.html
│ │ │ ├── light.wasm
│ │ │ └── package.json
│ │ └── worker
│ │ ├── __tests__
│ │ │ └── worker.spec.ts
│ │ ├── index.html
│ │ ├── my-shared-worker.ts
│ │ ├── my-worker.ts
│ │ ├── newUrl
│ │ │ ├── module.js
│ │ │ ├── url-shared-worker.js
│ │ │ └── url-worker.js
│ │ ├── package.json
│ │ ├── possible-ts-output-worker.mjs
│ │ ├── test-plugin.tsx
│ │ ├── vite.config.ts
│ │ └── workerImport.js
│ ├── plugin-legacy
│ │ ├── CHANGELOG.md
│ │ ├── README.md
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── package.json
│ ├── plugin-react
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── api-extractor.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── babel.d.ts
│ │ │ ├── fast-refresh.ts
│ │ │ ├── index.ts
│ │ │ └── jsx-runtime
│ │ │ ├── babel-import-to-require.ts
│ │ │ ├── babel-restore-jsx.spec.ts
│ │ │ ├── babel-restore-jsx.ts
│ │ │ └── restore-jsx.ts
│ │ └── tsconfig.json
│ ├── plugin-vue
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── api-extractor.json
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── compiler.ts
│ │ │ ├── handleHotUpdate.ts
│ │ │ ├── helper.ts
│ │ │ ├── index.ts
│ │ │ ├── main.ts
│ │ │ ├── script.ts
│ │ │ ├── style.ts
│ │ │ ├── template.ts
│ │ │ └── utils
│ │ │ ├── descriptorCache.ts
│ │ │ ├── error.ts
│ │ │ └── query.ts
│ │ └── tsconfig.json
│ ├── plugin-vue-jsx
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ └── package.json
│ └── vite
│ ├── CHANGELOG.md
│ ├── LICENSE.md
│ ├── README.md
│ ├── api-extractor.json
│ ├── bin
│ │ ├── openChrome.applescript
│ │ └── vite.js
│ ├── client.d.ts
│ ├── package.json
│ ├── rollup.config.js
│ ├── scripts
│ │ └── patchTypes.ts
│ ├── src
│ │ ├── client
│ │ │ ├── client.ts
│ │ │ ├── env.ts
│ │ │ ├── overlay.ts
│ │ │ └── tsconfig.json
│ │ └── node
│ │ ├── __tests__
│ │ │ ├── asset.spec.ts
│ │ │ ├── build.spec.ts
│ │ │ ├── config.spec.ts
│ │ │ ├── dev.spec.ts
│ │ │ ├── packages
│ │ │ │ ├── name
│ │ │ │ │ └── package.json
│ │ │ │ └── noname
│ │ │ │ └── package.json
│ │ │ ├── plugins
│ │ │ │ ├── css.spec.ts
│ │ │ │ └── import.spec.ts
│ │ │ ├── scan.spec.ts
│ │ │ └── utils.spec.ts
│ │ ├── build.ts
│ │ ├── certificate.ts
│ │ ├── cli.ts
│ │ ├── config.ts
│ │ ├── constants.ts
│ │ ├── http.ts
│ │ ├── importGlob.ts
│ │ ├── index.ts
│ │ ├── logger.ts
│ │ ├── optimizer
│ │ │ ├── esbuildDepPlugin.ts
│ │ │ ├── index.ts
│ │ │ ├── registerMissing.ts
│ │ │ └── scan.ts
│ │ ├── packages.ts
│ │ ├── plugin.ts
│ │ ├── plugins
│ │ │ ├── asset.ts
│ │ │ ├── assetImportMetaUrl.ts
│ │ │ ├── clientInjections.ts
│ │ │ ├── css.ts
│ │ │ ├── dataUri.ts
│ │ │ ├── define.ts
│ │ │ ├── esbuild.ts
│ │ │ ├── html.ts
│ │ │ ├── importAnalysis.ts
│ │ │ ├── importAnalysisBuild.ts
│ │ │ ├── index.ts
│ │ │ ├── json.ts
│ │ │ ├── loadFallback.ts
│ │ │ ├── manifest.ts
│ │ │ ├── modulePreloadPolyfill.ts
│ │ │ ├── preAlias.ts
│ │ │ ├── reporter.ts
│ │ │ ├── resolve.ts
│ │ │ ├── ssrRequireHook.ts
│ │ │ ├── terser.ts
│ │ │ ├── wasm.ts
│ │ │ ├── worker.ts
│ │ │ └── workerImportMetaUrl.ts
│ │ ├── preview.ts
│ │ ├── server
│ │ │ ├── __tests__
│ │ │ │ ├── fixtures
│ │ │ │ │ ├── lerna
│ │ │ │ │ │ ├── lerna.json
│ │ │ │ │ │ └── nested
│ │ │ │ │ │ └── package.json
│ │ │ │ │ ├── none
│ │ │ │ │ │ └── nested
│ │ │ │ │ │ └── package.json
│ │ │ │ │ ├── pnpm
│ │ │ │ │ │ ├── nested
│ │ │ │ │ │ │ └── package.json
│ │ │ │ │ │ ├── package.json
│ │ │ │ │ │ └── pnpm-workspace.yaml
│ │ │ │ │ └── yarn
│ │ │ │ │ ├── nested
│ │ │ │ │ │ └── package.json
│ │ │ │ │ └── package.json
│ │ │ │ ├── pluginContainer.spec.ts
│ │ │ │ └── search-root.spec.ts
│ │ │ ├── hmr.ts
│ │ │ ├── index.ts
│ │ │ ├── middlewares
│ │ │ │ ├── base.ts
│ │ │ │ ├── error.ts
│ │ │ │ ├── indexHtml.ts
│ │ │ │ ├── proxy.ts
│ │ │ │ ├── spaFallback.ts
│ │ │ │ ├── static.ts
│ │ │ │ ├── time.ts
│ │ │ │ └── transform.ts
│ │ │ ├── moduleGraph.ts
│ │ │ ├── openBrowser.ts
│ │ │ ├── pluginContainer.ts
│ │ │ ├── searchRoot.ts
│ │ │ ├── send.ts
│ │ │ ├── sourcemap.ts
│ │ │ ├── transformRequest.ts
│ │ │ └── ws.ts
│ │ ├── ssr
│ │ │ ├── __tests__
│ │ │ │ └── ssrTransform.spec.ts
│ │ │ ├── ssrExternal.ts
│ │ │ ├── ssrManifestPlugin.ts
│ │ │ ├── ssrModuleLoader.ts
│ │ │ ├── ssrStacktrace.ts
│ │ │ └── ssrTransform.ts
│ │ ├── tsconfig.json
│ │ └── utils.ts
│ ├── tsconfig.base.json
│ └── types
│ ├── alias.d.ts
│ ├── anymatch.d.ts
│ ├── chokidar.d.ts
│ ├── commonjs.d.ts
│ ├── connect.d.ts
│ ├── customEvent.d.ts
│ ├── dynamicImportVars.d.ts
│ ├── hmrPayload.d.ts
│ ├── http-proxy.d.ts
│ ├── importMeta.d.ts
│ ├── package.json
│ ├── shims.d.ts
│ ├── terser.d.ts
│ └── ws.d.ts
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── scripts
│ ├── jestEnv.cjs
│ ├── jestGlobalSetup.cjs
│ ├── jestGlobalTeardown.cjs
│ ├── jestPerTestSetup.ts
│ ├── patchEsbuildDist.ts
│ ├── patchFileDeps.ts
│ ├── publishCI.ts
│ ├── release.ts
│ ├── releaseUtils.ts
│ ├── tsconfig.json
│ └── verifyCommit.ts
└── tree.txt
298 directories, 969 files
- 298 directories, 969 files
packages/playground配下が大きい
215 directories, 628 files を占める
- 様々な環境でViteを利用するミニマムセットで、全てテストを含んでいる
playgroundでgrepしてみると、 CONTRIBUTING.md がヒットし、テストに関する記述などが出てくる- jestの設定に含まれており、
playwright-chromium経由で Playwright を起動してブラウザ上でテストが実行される
packages/vite がvite本体ぽい
- 27 directories, 114 files
- コア部分は意外と小さい
ディレクトリだけ一覧して眺める
ファイル一覧だと Playground 配下が巨大すぎてアレなので、ディレクトリだけで一覧してみる。
tree -dplaygroundnode_modulesは除去
という感じで出力してみた。
.
├── docs
│ ├── blog
│ ├── config
│ ├── guide
│ ├── images
│ ├── plugins
│ └── public
├── packages
│ ├── create-vite
│ │ ├── __tests__
│ │ ├── template-lit
│ │ │ └── src
│ │ ├── template-lit-ts
│ │ │ └── src
│ │ ├── template-preact
│ │ │ └── src
│ │ ├── template-preact-ts
│ │ │ └── src
│ │ ├── template-react
│ │ │ └── src
│ │ ├── template-react-ts
│ │ │ └── src
│ │ ├── template-svelte
│ │ │ ├── public
│ │ │ └── src
│ │ │ ├── assets
│ │ │ └── lib
│ │ ├── template-svelte-ts
│ │ │ ├── public
│ │ │ └── src
│ │ │ ├── assets
│ │ │ └── lib
│ │ ├── template-vanilla
│ │ ├── template-vanilla-ts
│ │ │ └── src
│ │ ├── template-vue
│ │ │ ├── public
│ │ │ └── src
│ │ │ ├── assets
│ │ │ └── components
│ │ └── template-vue-ts
│ │ ├── public
│ │ └── src
│ │ ├── assets
│ │ └── components
│ ├── playground
│ │ └── (※省略)
│ ├── plugin-legacy
│ ├── plugin-react
│ │ ├── dist
│ │ └── src
│ │ └── jsx-runtime
│ ├── plugin-vue
│ │ ├── dist
│ │ └── src
│ │ └── utils
│ ├── plugin-vue-jsx
│ └── vite
│ ├── bin
│ ├── dist
│ │ ├── client
│ │ └── node
│ │ └── chunks
│ ├── scripts
│ ├── src
│ │ ├── client
│ │ └── node
│ │ ├── __tests__
│ │ │ ├── packages
│ │ │ │ ├── name
│ │ │ │ └── noname
│ │ │ └── plugins
│ │ ├── optimizer
│ │ ├── plugins
│ │ ├── server
│ │ │ ├── __tests__
│ │ │ │ └── fixtures
│ │ │ │ ├── lerna
│ │ │ │ │ └── nested
│ │ │ │ ├── none
│ │ │ │ │ └── nested
│ │ │ │ ├── pnpm
│ │ │ │ │ └── nested
│ │ │ │ └── yarn
│ │ │ │ └── nested
│ │ │ └── middlewares
│ │ └── ssr
│ │ └── __tests__
│ └── types
└── scripts
- そこまで階層が深いわけでもなく、わりとシンプルなディレクトリ構造な印象
create-viteviteの2つがコアって感じ
テストを動かしてみる
pnpm i
pnpm test
- 普通に大量に落ちる。なんでや!
Target page, context or browser has been closed- https://github.com/vitejs/vite/issues/4543 1回ビルドしないとダメぽい
pnpm build実行 → まだ落ちる
Since Jest will attempt to run tests in parallel, if your machine has many cores this may cause flaky test failures with multiple Playwright instances running at the same time. You can force the tests to run in series with
pnpm run test-serve -- --runInBand.
- らしいので、
pnpm run test-serve -- --runInBandを試したところパスした
とりあえずディレクトリを眺めてテストを通すところまでやった。
最初に全ファイル出力したときは「おおぅ...」となったが、playground系のコードを省いたらわりとなんとかなる気がしてきた。
次→ルートにある各種ファイルを見てみる