Skip to content

Commit 562f2d0

Browse files
committed
feat: add rolldown and rolldown-vite as sub packages
1 parent 4bb4def commit 562f2d0

17 files changed

Lines changed: 10182 additions & 2321 deletions

.github/workflows/release.yml

Lines changed: 73 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,18 @@ jobs:
2929
persist-credentials: false
3030
submodules: true
3131

32+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
33+
with:
34+
repository: rolldown/rolldown
35+
path: rolldown
36+
ref: main
37+
38+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
39+
with:
40+
repository: vitejs/rolldown-vite
41+
path: rolldown-vite
42+
ref: rolldown-vite
43+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
3244
- uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.2
3345
with:
3446
save-cache: ${{ github.ref_name == 'main' }}
@@ -37,6 +49,10 @@ jobs:
3749
- name: Rustup Adds Target
3850
run: rustup target add ${{ matrix.settings.target }}
3951

52+
- name: Rustup Adds Target for rolldown
53+
working-directory: rolldown
54+
run: rustup target add ${{ matrix.settings.target }}
55+
4056
- name: Add musl target (x86_64)
4157
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
4258
run: rustup target add x86_64-unknown-linux-musl
@@ -45,8 +61,17 @@ jobs:
4561
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
4662
run: rustup target add aarch64-unknown-linux-musl
4763

64+
- name: Add rolldown host target
65+
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
66+
working-directory: rolldown
67+
run: rustup target add x86_64-unknown-linux-gnu
68+
4869
- uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4
4970

71+
- name: Build host rolldown
72+
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
73+
run: pnpm --filter rolldown build-binding:release --target x86_64-unknown-linux-gnu
74+
5075
- name: Set binding version
5176
run: pnpm exec tool replace-file-content packages/cli/binding/Cargo.toml 'version = "0.0.0"' 'version = "0.0.0-${{ github.sha }}"'
5277

@@ -55,28 +80,52 @@ jobs:
5580

5681
- name: Build
5782
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
58-
run: pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }} --use-napi-cross
83+
run: |
84+
pnpm --filter @rolldown/pluginutils build
85+
pnpm --filter rolldown build-binding:release --target ${{ matrix.settings.target }} --use-napi-cross
86+
pnpm --filter rolldown build-node
87+
pnpm --filter rolldown-vite build-types
88+
CC="x86_64-unknown-linux-gnu-cc" pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }} --use-napi-cross
5989
env:
60-
CC: x86_64-unknown-linux-gnu-cc
6190
TARGET_CC: clang
6291

6392
- name: Build
6493
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
65-
run: pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }} --use-napi-cross
94+
run: |
95+
pnpm --filter @rolldown/pluginutils build
96+
pnpm --filter rolldown build-binding:release --target ${{ matrix.settings.target }} --use-napi-cross
97+
pnpm --filter rolldown build-node
98+
pnpm --filter rolldown-vite build-types
99+
pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }} --use-napi-cross
66100
env:
67101
TARGET_CC: clang
68102

69103
- name: Build
70104
if: ${{ !contains(matrix.settings.target, 'linux') }}
71-
run: pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }}
105+
run: |
106+
pnpm --filter @rolldown/pluginutils build
107+
pnpm --filter rolldown build-binding:release --target ${{ matrix.settings.target }}
108+
pnpm --filter rolldown build-node
109+
pnpm --filter rolldown-vite build-types
110+
pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }}
72111
73-
- name: Upload artifact
112+
- name: Upload Vite+ artifact
74113
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
75114
with:
76-
name: bindings-${{ matrix.settings.target }}
115+
name: vite-plus-native-${{ matrix.settings.target }}
77116
path: ./packages/cli/binding/*.node
78117
if-no-files-found: error
79118

119+
- name: Upload rolldown artifact
120+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
121+
with:
122+
name: rolldown-native-${{ matrix.settings.target }}
123+
path: ./rolldown/packages/rolldown/src/*.node
124+
if-no-files-found: error
125+
- name: Remove .node files before upload dist
126+
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
127+
run: rm ./packages/cli/dist/**/*.node
128+
80129
- name: Upload cli dist
81130
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
82131
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
@@ -96,15 +145,23 @@ jobs:
96145
with:
97146
persist-credentials: false
98147
submodules: true
148+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
149+
with:
150+
repository: rolldown/rolldown
151+
path: rolldown
152+
ref: main
153+
154+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
155+
with:
156+
repository: vitejs/rolldown-vite
157+
path: rolldown-vite
158+
ref: rolldown-vite
99159

100160
- uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4
101161

102162
- name: Configure Git for access to vite-task
103163
run: git config --global url."https://x-access-token:${{ secrets.VITE_TASK_TOKEN }}@github.com/".insteadOf "https://github.com/"
104164

105-
- name: Bootstrap
106-
run: pnpm bootstrap-cli:ci
107-
108165
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
109166
with:
110167
path: packages/cli/dist
@@ -114,7 +171,13 @@ jobs:
114171
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
115172
with:
116173
path: packages/cli/dist
117-
pattern: bindings-*
174+
pattern: vite-plus-native-*
175+
merge-multiple: true
176+
177+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
178+
with:
179+
path: packages/cli/dist/vite
180+
pattern: rolldown-native-*
118181
merge-multiple: true
119182

120183
- name: Set npm packages version

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@ dist
44
.claude/settings.local.json
55
*.tsbuildinfo
66
.DS_Store
7+
rolldown/pnpm-lock.yaml
8+
rolldown/pnpm-workspace.yaml
9+
rolldown
10+
rolldown-vite

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vite-plus-monorepo",
33
"license": "BUSL-1.1",
44
"private": true,
5-
"packageManager": "pnpm@10.17.1",
5+
"packageManager": "pnpm@10.19.0",
66
"engines": {
77
"node": "^20.19.0 || >=22.12.0"
88
},

packages/cli/binding/src/lib.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,14 @@ pub async fn run(options: CliOptions) -> Result<i32> {
150150
let resolved = vite
151151
.call_async(Ok(()))
152152
.await
153+
.inspect_err(|err| {
154+
tracing::error!("vite error: {:?}", err);
155+
})
153156
.map_err(js_error_to_vite_error)?
154157
.await
158+
.inspect_err(|err| {
159+
tracing::error!("vite error: {:?}", err);
160+
})
155161
.map_err(js_error_to_vite_error)?;
156162

157163
Ok(resolved.into())
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import pkgJson from '../package.json' with { type: 'json' };
2+
3+
export const RewriteImportsPlugin = {
4+
name: 'externalize-vite-and-rolldown',
5+
resolveId(id: string) {
6+
if (id.startsWith('vite/')) {
7+
return { id: id.replace(/^vite\//, `${pkgJson.name}/`), external: true };
8+
}
9+
if (id === 'rolldown') {
10+
return { id: `${pkgJson.name}/rolldown`, external: true };
11+
}
12+
if (id.startsWith('rolldown/')) {
13+
return { id: id.replace(/^rolldown\//, `${pkgJson.name}/rolldown/`), external: true };
14+
}
15+
},
16+
};

0 commit comments

Comments
 (0)