This fixture demonstrates that the Vitest integration correctly resolves modules, including:
- A CommonJS package that requires a directory rather than a specific file.
- An ESM dependency that imports
*.wasm?modulefrom the same directory. - A package without a main entrypoint or with browser field mapping, handled via Dependency Pre-Bundling.
Dependency Pre-Bundling is a Vite feature that converts dependencies shipped as CommonJS or UMD into ESM. If you encounter module resolution issues—such as: Error: Cannot use require() to import an ES Module or Error: No such module—you can pre-bundle these dependencies using the deps.optimizer option:
import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineConfig } from "vitest/config";
export default defineConfig({
plugins: [
cloudflareTest({
wrangler: { configPath: "./wrangler.jsonc" },
}),
],
test: {
deps: {
optimizer: {
ssr: {
enabled: true,
include: ["your-package-name"],
},
},
},
},
});See our vitest config for an example of how we pre-bundled discord-api-types/v10 and @microlabs/otel-cf-workers.