## Problem
We were getting the following issue when attempting to use releases of the sdk:
```
✘ [ERROR] Could not resolve "virtual:use-client-lookup"
node_modules/.pnpm/redwoodsdk@0.0.3-test.0_@types+node@22.13.9_kysely@0.27.6_react-server-dom-webpack@19.0.0-rc-_okuaffup7hq2qvdkni27cuiofy/node_modules/redwoodsdk/dist/runtime/imports/client.js:7:49:
7 │ const { useClientLookup } = await import("virtual:use-client-lookup");
```
This is pointing to a line in the sdk's code where we ""virtual:use-client-lookup", which is actually a virtual file that we resolve using a vite plugin we implement, in its `resolveId` hook.
The reason this is breaking, is that there is an esbuild pass happening. Why is that happening? Because during vite's optimizeDeps step, it is finding this code path, and trying to optimize it. Problem is, esbuild doesn't itself know what this is, since this is a virtual module we resolve using vite's own `resolveId` plugin hook.
### Why wasn't this happening before?
My best guess is that vite's optimizeDep step operates differently when a dependency is in the same monorepo, and opts out of the step for the relevant modules of that dependency.
## Solution
Configure `optimizeDeps.esbuildOptions` to exclude `"virtual:use-client-lookup"` (in the client environment, where it would get to this code path). We need to do this by defining an esbuild plugin, since vite prevents us from specifying excludes in `optimizeDpes.esbuildOptions` to exclude options not compatible with the optimizeDeps implemention of theirs.