vitest-dev / vitest-dev/vscode

ReferenceError: exports is not defined in ES module scope

Open
#773 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

pending triage
Dominant language
TypeScript
Stars
924
Forks
122
Avg merge
1d 14h
Merged PRs (30d)
6

Description

Describe the bug

Vitest vscode extension gives this error when it loads the tests in a workspace. I have set up all my package types to module, so it should not error about this.
‍‍‍‍‍‍‍‍‍ReferenceError: exports is not defined in ES module scope

Expected behavior

It should not error for exports usage. I am not using commonjs

Reproduction

Open Vitest in a bun workspace and add configurations via vitest.config.ts for one of the packages.

import solid from "vite-plugin-solid";
import { defineConfig } from "vitest/config";

export default defineConfig({
	plugins: [solid()],
	resolve: {
		conditions: ["development", "browser"],
	},
	test: {
		environment: "happy-dom",
		globals: true,
		include: ["src/**/__tests__/**/*.test.{ts,tsx}"],
	},
});

My vite version is 7.3.1

Here's package.json:

{
	"name": "test-workspace",
	"private": true,
	"main": "src/index.ts",
	"type": "module",
	"dependencies": {
		"solid-js": "^1.9.11"
	},
	"devDependencies": {
		"@solidjs/testing-library": "^0.8.10",
		"@testing-library/user-event": "^14.6.1",
		"@testing-library/dom": "^10.4.1",
		"@testing-library/jest-dom": "^6.9.1",
		"happy-dom": "^20.7.0",
		"vite": "^7.3.1",
		"vite-plugin-solid": "^2.11.10",
		"vitest": "^4.0.18"
	}
}

and tsconfig (merged from extends for easier understanding

{
	"extends": "./node_modules/@tsconfig/bases/strictest.tsconfig.json",
	"compilerOptions": {
		"strictBuiltinIteratorReturn": false,
		"strictPropertyInitialization": false,
		"forceConsistentCasingInFileNames": true,
		"target": "es2022",
		"module": "esnext",
		"moduleResolution": "bundler",
		"lib": ["es2022"],
		"noEmit": true,
		"preserveWatchOutput": true,
		"allowImportingTsExtensions": true,
		"esModuleInterop": true,
		"preserveSymlinks": true,
		"declaration": true,
		"sourceMap": true,
		"incremental": true,
		"allowJs": true,
		"esModuleInterop": true,
		"jsx": "preserve",
		"jsxImportSource": "solid-js",
		"lib": ["ES2022", "DOM", "DOM.Iterable"],
		"types": ["vite/client"],
		"moduleResolution": "bundler",
		"skipLibCheck": true,
		"sourceMap": true,
		"strict": true
	},
	"exclude": ["node_modules", "dist"]
}

Output
Error: Vitest failed to start: 
ReferenceError: exports is not defined in ES module scope
    at file:///Users/amin/work/test/packages/auth/node_modules/.vite-temp/vitest.config.js.timestamp-1775796412003-477f52e87ef0f.mjs:9:23
    at ModuleJob.run (node:internal/modules/esm/module_job:345:25)
    at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:665:26)
    at async loadConfigFromBundledFile (file:///Users/amin/work/test/node_modules/.bun/vite@7.3.1+31d0b22d5eb96c53/node_modules/vite/dist/node/chunks/config.js:35909:12)
    at async bundleAndLoadConfigFile (file:///Users/amin/work/test/node_modules/.bun/vite@7.3.1+31d0b22d5eb96c53/node_modules/vite/dist/node/chunks/config.js:35797:17)
    at async loadConfigFromFile (file:///Users/amin/work/test/node_modules/.bun/vite@7.3.1+31d0b22d5eb96c53/node_modules/vite/dist/node/chunks/config.js:35764:42)
    at async resolveConfig (file:///Users/amin/work/test/node_modules/.bun/vite@7.3.1+31d0b22d5eb96c53/node_modules/vite/dist/node/chunks/config.js:35413:22)
    at async _createServer (file:///Users/amin/work/test/node_modules/.bun/vite@7.3.1+31d0b22d5eb96c53/node_modules/vite/dist/node/chunks/config.js:25362:67)
    at async createViteServer (file:///Users/amin/work/test/node_modules/.bun/vitest@4.1.2+b66a349cc098673f/node_modules/vitest/dist/chunks/cli-api.Bxr1Nn49.js:8820:17)
    at async Module.createVitest (file:///Users/amin/work/test/node_modules/.bun/vitest@4.1.2+b66a349cc098673f/node_modules/vitest/dist/chunks/cli-api.Bxr1Nn49.js:14161:18)
	at e.u (/Users/amin/.vscode/extensions/vitest.explorer-1.50.1/dist/extension.js:1:58873)
	at e.emit (node:events:519:28)
	at e.o.t.exports.ae (/Users/amin/.vscode/extensions/vitest.explorer-1.50.1/dist/wrapper-Br94zcvg.js:1:38577)
	at e.o.t.exports.emit (node:events:519:28)
	at e.o.t.exports.dataMessage (/Users/amin/.vscode/extensions/vitest.explorer-1.50.1/dist/wrapper-Br94zcvg.js:1:16501)
	at e.o.t.exports.getData (/Users/amin/.vscode/extensions/vitest.explorer-1.50.1/dist/wrapper-Br94zcvg.js:1:15398)
	at e.o.t.exports.startLoop (/Users/amin/.vscode/extensions/vitest.explorer-1.50.1/dist/wrapper-Br94zcvg.js:1:12110)
	at e.o.t.exports._write (/Users/amin/.vscode/extensions/vitest.explorer-1.50.1/dist/wrapper-Br94zcvg.js:1:11402)
	at writeOrBuffer (node:internal/streams/writable:572:12)
	at _write (node:internal/streams/writable:501:10)
	at Writable.write (node:internal/streams/writable:510:10)
	at Socket.Z (/Users/amin/.vscode/extensions/vitest.explorer-1.50.1/dist/wrapper-Br94zcvg.js:1:39601)
	at Socket.emit (node:events:519:28)
	at addChunk (node:internal/streams/readable:561:12)
	at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
	at Readable.push (node:internal/streams/readable:392:5)
	at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
	at TCP.callbackTrampoline (node:internal/async_hooks:130:17)
Extension Version

1.50.1

Vitest Version

4.1.2

Validations

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure in a Bun workspace using the provided vitest.config.ts, package.json, and tsconfig settings. Start with the generated .vite-temp/vitest.config.js and the Vite loadConfigFromBundledFile path shown in the stack trace; done means the VS Code extension loads the tests without the ES module ReferenceError.

Written by the indexing model from the issue text.

Assessment

Tech stack
bun, node.js, typescript, vite, vscode
Domain
devtools, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.