diff --git a/packages/vite-node/src/cli.ts b/packages/vite-node/src/cli.ts
index 876c57a985de..aec50fc02884 100644
--- a/packages/vite-node/src/cli.ts
+++ b/packages/vite-node/src/cli.ts
@@ -84,6 +84,9 @@ async function run(options: CliOptions = {}) {
},
})
+ // provide the vite define variable in this context
+ await runner.executeId('/@vite/env')
+
for (const file of files)
await runner.executeFile(file)
diff --git a/packages/vitest/src/node/execute.ts b/packages/vitest/src/node/execute.ts
index 483c52611ad6..4108b0c88604 100644
--- a/packages/vitest/src/node/execute.ts
+++ b/packages/vitest/src/node/execute.ts
@@ -14,6 +14,9 @@ export interface ExecuteOptions extends ViteNodeRunnerOptions {
export async function executeInViteNode(options: ExecuteOptions) {
const runner = new VitestRunner(options)
+ // provide the vite define variable in this context
+ await runner.executeId('/@vite/env')
+
const result: any[] = []
for (const file of options.files)
result.push(await runner.executeFile(file))
diff --git a/test/coverage-test/src/Defined.vue b/test/coverage-test/src/Defined.vue
new file mode 100644
index 000000000000..ea23174393a8
--- /dev/null
+++ b/test/coverage-test/src/Defined.vue
@@ -0,0 +1,6 @@
+
+
+ {{ defined }}
+
diff --git a/test/coverage-test/test/vue.test.ts b/test/coverage-test/test/vue.test.ts
index ee9df3a7ef5a..521f4bfb5056 100644
--- a/test/coverage-test/test/vue.test.ts
+++ b/test/coverage-test/test/vue.test.ts
@@ -5,6 +5,7 @@
import { expect, test } from 'vitest'
import { mount } from '@vue/test-utils'
import Hello from '../src/Hello.vue'
+import Defined from '../src/Defined.vue'
test('vue 3 coverage', async() => {
expect(Hello).toBeTruthy()
@@ -26,3 +27,11 @@ test('vue 3 coverage', async() => {
expect(wrapper.text()).toContain('4 x 4 = 16')
})
+
+test('define package in vm', () => {
+ expect(Defined).toBeTruthy()
+
+ const wrapper = mount(Defined)
+
+ expect(wrapper.text()).toContain(MY_CONSTANT)
+})
diff --git a/test/coverage-test/typings.d.ts b/test/coverage-test/typings.d.ts
new file mode 100644
index 000000000000..6b85feb7c2ec
--- /dev/null
+++ b/test/coverage-test/typings.d.ts
@@ -0,0 +1 @@
+declare const MY_CONSTANT: string
diff --git a/test/coverage-test/vitest.config.ts b/test/coverage-test/vitest.config.ts
index a45fa5ac20ef..42303dbc3c44 100644
--- a/test/coverage-test/vitest.config.ts
+++ b/test/coverage-test/vitest.config.ts
@@ -5,6 +5,9 @@ export default defineConfig({
plugins: [
vue(),
],
+ define: {
+ MY_CONSTANT: '"my constant"',
+ },
test: {
},
})