-
-
Couldn't load subscription status.
- Fork 1.5k
Labels
Description
Describe the bug
Even when using the Node environment, Vitest doesn't correctly resolve built in modules:
import fs from 'fs/promises';
vi.spyOn(fs, 'readFile');throws an error because fs is undefined.
const fs = await vi.importActual('fs/promises');
console.log(fs);prints [Module: null prototype] {}.
This isn't limited to fs: the issue is also present when using other Node built in modules like path.
@sheremet-va noted that Vitest still resolves node:fs/promises correctly, so a temporary fix has been:
resolve: {
alias: {
'fs/promises': 'node:fs/promises'
}
}
Reproduction
System Info
System:
OS: Linux 5.0 undefined
CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
Memory: 0 Bytes / 0 Bytes
Shell: 1.0 - /bin/jsh
Binaries:
Node: 20.19.1 - /usr/local/bin/node
Yarn: 1.22.19 - /usr/local/bin/yarn
npm: 10.8.2 - /usr/local/bin/npm
pnpm: 8.15.6 - /usr/local/bin/pnpm
npmPackages:
@vitest/ui: latest => 4.0.1
vite: latest => 7.1.11
vitest: latest => 4.0.1Used Package Manager
npm
Validations
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
- The provided reproduction is a minimal reproducible example of the bug.