Files
b8eba4f703 Mark bun builtin modules as external (fixes #75220) (#77616)
Fixes https://github.com/vercel/next.js/issues/75220

This marks Bun's builtin modules as external, following the same pattern
as for Node.

- `"bun:ffi"`
- `"bun:jsc"`
- `"bun:sqlite"`
- `"bun:test"`
- `"bun:wrap"`
- `"bun"`

I have not manually tested this change yet, nor attempted to write tests
for this. I did check for other places in the code that should be
updated and _maybe_
`externals/crates/next-custom-transforms/src/transforms/warn_for_edge_runtime.rs`
should as well, but I'll leave that up to you whether or not that makes
sense. Opening as a draft until this can be at least manually tested.

By the way, node's `sqlite` module is missing from `NODE_EXTERNALS`.
That seemed out of scope but worth mentioning.

Current error message:

![image](https://github.com/user-attachments/assets/0538fd35-a1ce-44fe-af7f-1db696cd3e7b)

---------

Co-authored-by: Alistair Smith <[email protected]>
2025-08-01 11:15:57 +02:00

24 lines
523 B
TypeScript

'use client'
import { useState } from 'react'
import { testBunExternals } from './actions'
export default function ServerActionPage() {
const [result, setResult] = useState('')
async function handleClick() {
const res = await testBunExternals()
setResult(res)
}
return (
<div>
<h1>Server Action Test</h1>
<button id="test-action" onClick={handleClick}>
Test Bun Externals in Server Action
</button>
{result && <div id="action-result">{result}</div>}
</div>
)
}