Skip to content

Commit a970115

Browse files
committed
docs: add rolldown chapter
1 parent 14cc591 commit a970115

File tree

3 files changed

+125
-27
lines changed

3 files changed

+125
-27
lines changed

.vitepress/config.ts

+31-27
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
1-
import type { DefaultTheme } from 'vitepress'
2-
import { defineConfig } from 'vitepress'
3-
import { transformerTwoslash } from '@shikijs/vitepress-twoslash'
1+
import type { DefaultTheme } from 'vitepress';
2+
import { defineConfig } from 'vitepress';
3+
import { transformerTwoslash } from '@shikijs/vitepress-twoslash';
44
import {
55
groupIconMdPlugin,
66
groupIconVitePlugin,
7-
} from 'vitepress-plugin-group-icons'
8-
import { buildEnd } from './buildEnd.config'
7+
} from 'vitepress-plugin-group-icons';
8+
import { buildEnd } from './buildEnd.config';
99

10-
const ogDescription = '次世代フロントエンドツール'
11-
const ogImage = 'https://vite.dev/og-image.jpg'
12-
const ogTitle = 'Vite'
13-
const ogUrl = 'https://vite.dev'
10+
const ogDescription = '次世代フロントエンドツール';
11+
const ogImage = 'https://vite.dev/og-image.jpg';
12+
const ogTitle = 'Vite';
13+
const ogUrl = 'https://vite.dev';
1414

1515
// netlify envs
16-
const deployURL = process.env.DEPLOY_PRIME_URL || ''
17-
const commitRef = process.env.COMMIT_REF?.slice(0, 8) || 'dev'
16+
const deployURL = process.env.DEPLOY_PRIME_URL || '';
17+
const commitRef = process.env.COMMIT_REF?.slice(0, 8) || 'dev';
1818

1919
const deployType = (() => {
2020
switch (deployURL) {
2121
// case 'https://main--vite-docs-main.netlify.app':
2222
// return 'main'
2323
case '':
24-
return 'local'
24+
return 'local';
2525
default:
26-
return 'release'
26+
return 'release';
2727
}
28-
})()
28+
})();
2929
const additionalTitle = ((): string => {
3030
switch (deployType) {
3131
// case 'main':
3232
// return ' (main branch)'
3333
case 'local':
34-
return ' (local)'
34+
return ' (local)';
3535
case 'release':
36-
return ''
36+
return '';
3737
}
38-
})()
38+
})();
3939
const versionLinks = ((): DefaultTheme.NavItemWithLink[] => {
4040
const oldVersions: DefaultTheme.NavItemWithLink[] = [
4141
{
@@ -54,7 +54,7 @@ const versionLinks = ((): DefaultTheme.NavItemWithLink[] => {
5454
text: 'Vite 2 ドキュメント',
5555
link: 'https://v2.vite.dev',
5656
},
57-
]
57+
];
5858

5959
switch (deployType) {
6060
// case 'main':
@@ -65,11 +65,11 @@ const versionLinks = ((): DefaultTheme.NavItemWithLink[] => {
6565
link: 'https://vite.dev',
6666
},
6767
...oldVersions,
68-
]
68+
];
6969
case 'release':
70-
return oldVersions
70+
return oldVersions;
7171
}
72-
})()
72+
})();
7373

7474
export default defineConfig({
7575
title: `Vite${additionalTitle}`,
@@ -306,6 +306,10 @@ export default defineConfig({
306306
text: 'パフォーマンス',
307307
link: '/guide/performance',
308308
},
309+
{
310+
text: 'Rolldown',
311+
link: '/guide/rolldown',
312+
},
309313
{
310314
text: 'v5 からの移行',
311315
link: '/guide/migration',
@@ -450,18 +454,18 @@ export default defineConfig({
450454
transformPageData(pageData) {
451455
const canonicalUrl = `${ogUrl}/${pageData.relativePath}`
452456
.replace(/\/index\.md$/, '/')
453-
.replace(/\.md$/, '')
454-
pageData.frontmatter.head ??= []
457+
.replace(/\.md$/, '');
458+
pageData.frontmatter.head ??= [];
455459
pageData.frontmatter.head.unshift(
456460
['link', { rel: 'canonical', href: canonicalUrl }],
457461
['meta', { property: 'og:title', content: pageData.title }],
458-
)
459-
return pageData
462+
);
463+
return pageData;
460464
},
461465
markdown: {
462466
codeTransformers: [transformerTwoslash()],
463467
config(md) {
464-
md.use(groupIconMdPlugin)
468+
md.use(groupIconMdPlugin);
465469
},
466470
},
467471
vite: {
@@ -483,4 +487,4 @@ export default defineConfig({
483487
},
484488
},
485489
buildEnd,
486-
})
490+
});

guide/performance.md

+1
Original file line numberDiff line numberDiff line change
@@ -122,5 +122,6 @@ export default defineConfig({
122122

123123
ネイティブツールを使用すると、インストールサイズが大きくなることが多いため、新しい Vite プロジェクトを開始する際のデフォルトではありません。しかし、大規模なアプリケーションではコストをかける価値があるかもしれません。
124124

125+
- より高速なビルドと開発/ビルド間の一貫した体験のために、[Rollup と esbuild の代わりに Rolldown](./rolldown) を使用する。
125126
- [LightningCSS](https://github.com/vitejs/vite/discussions/13835) の実験的サポートを試す。
126127
- `vitejs/plugin-react` の代わりに [`@vitejs/plugin-react-swc`](https://github.com/vitejs/vite-plugin-react-swc) を使用する。

guide/rolldown.md

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Rolldown の統合
2+
3+
Vite は、ビルドのパフォーマンスと機能を向上させるために、Rust で実装された JavaScript バンドラーの [Rolldown](https://rolldown.rs) を統合する計画を進めています。
4+
5+
## Rolldown とは
6+
7+
Rolldown は Rust で書かれたモダンで高性能な JavaScript バンドラーです。Rollup の代替として設計されており、既存のエコシステムとの互換性を維持しながら、大幅なパフォーマンスの向上を目指しています。
8+
9+
Rolldown は以下の 3 つの重要な原則に焦点を当てています:
10+
11+
- **スピード**: 最大限のパフォーマンスを実現するために Rust で構築
12+
- **互換性**: 既存の Rollup プラグインと連携可能
13+
- **開発者体験**: Rollup ユーザーにとって馴染みのある API
14+
15+
## Vite が Rolldown に移行する理由
16+
17+
1. **統一化**: Vite は現在、依存関係の事前バンドルには esbuild を、プロダクション環境のビルドには Rollup を使用しています。Rolldown はこれらを単一の高性能バンドラーに統一し、両方の目的に使用できるようにすることで、複雑さを軽減することを目指しています。
18+
19+
2. **パフォーマンス**: Rolldown の Rust ベースの実装は、JavaScript ベースのバンドラーと比較して大幅なパフォーマンスの向上を提供します。具体的なベンチマークはプロジェクトのサイズや複雑さによって異なりますが、初期のテストでは Rollup と比較して有望な速度向上が示されています。
20+
21+
Rolldown の背景にある動機についての詳細は、[Rolldown が構築される理由](https://rolldown.rs/guide/#why-rolldown)を参照してください。
22+
23+
## `rolldown-vite` を試す利点
24+
25+
- 特に大規模なプロジェクトで、大幅に高速なビルド時間を体験できます
26+
- Vite のバンドリング体験の未来を形作るための貴重なフィードバックを提供できます
27+
- プロジェクトを将来の公式 Rolldown 統合に向けて準備できます
28+
29+
## Rolldown を試す方法
30+
31+
Rolldown を搭載した Vite のバージョンは現在、`rolldown-vite` という別のパッケージとして利用可能です。`package.json` にパッケージオーバーライドを追加することで試すことができます:
32+
33+
:::code-group
34+
35+
```json [npm]
36+
{
37+
"overrides": {
38+
"vite": "npm:rolldown-vite@latest"
39+
}
40+
}
41+
```
42+
43+
```json [Yarn]
44+
{
45+
"resolutions": {
46+
"vite": "npm:rolldown-vite@latest"
47+
}
48+
}
49+
```
50+
51+
```json [pnpm]
52+
{
53+
"pnpm": {
54+
"overrides": {
55+
"vite": "npm:rolldown-vite@latest"
56+
}
57+
}
58+
}
59+
```
60+
61+
```json [Bun]
62+
{
63+
"overrides": {
64+
"vite": "npm:rolldown-vite@latest"
65+
}
66+
}
67+
```
68+
69+
:::
70+
71+
これらのオーバーライドを追加した後、依存関係を再インストールし、通常通り開発サーバーを起動するかプロジェクトをビルドしてください。それ以上の設定変更は必要ありません。
72+
73+
## 既知の制限事項
74+
75+
Rolldown は Rollup の代替として機能することを目指していますが、まだ実装中の機能や意図的な動作の違いがあります。包括的なリストについては、定期的に更新される[この GitHub PR](https://github.com/vitejs/rolldown-vite/pull/84#issue-2903144667) を参照してください。
76+
77+
## 問題の報告
78+
79+
これは実験的な統合であるため、問題が発生する可能性があります。問題が発生した場合は、**メインの Vite リポジトリーではなく**[`vitejs/rolldown-vite`](https://github.com/vitejs/rolldown-vite) リポジトリーに報告してください。
80+
81+
[問題を報告する](https://github.com/vitejs/rolldown-vite/issues/new)際は、issue テンプレートに従って以下の情報を提供してください:
82+
83+
- 問題の最小限の再現方法
84+
- 環境の詳細(OS、Node バージョン、パッケージマネージャー)
85+
- 関連するエラーメッセージやログ
86+
87+
リアルタイムでの議論やトラブルシューティングについては、[Rolldown Discord](https://chat.rolldown.rs/) に参加してください。
88+
89+
## 今後の計画
90+
91+
`rolldown-vite` パッケージは、フィードバックを収集し Rolldown 統合を安定させるための一時的な解決策です。将来的には、この機能はメインの Vite リポジトリーにマージされる予定です。
92+
93+
`rolldown-vite` を試して、フィードバックや問題報告を通じてその開発に貢献することをお勧めします。

0 commit comments

Comments
 (0)