From 2f065816a66910760de206494fb46318a4152269 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 14 Aug 2023 22:35:48 +0100 Subject: [PATCH 1/2] fix(vitest): use esm module resolution to resolve env --- packages/vitest/src/integrations/env/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vitest/src/integrations/env/index.ts b/packages/vitest/src/integrations/env/index.ts index 3015f9ddb252..07d6fbf530e8 100644 --- a/packages/vitest/src/integrations/env/index.ts +++ b/packages/vitest/src/integrations/env/index.ts @@ -1,6 +1,6 @@ import { pathToFileURL } from 'node:url' import { normalize, resolve } from 'pathe' -import { resolveModule } from 'local-pkg' +import { resolvePath } from 'mlly' import type { BuiltinEnvironment, VitestEnvironment } from '../../types/config' import type { Environment } from '../../types' import node from './node' @@ -40,7 +40,7 @@ export async function loadEnvironment(name: VitestEnvironment, root: string): Pr return environments[name] const packageId = name[0] === '.' || name[0] === '/' ? resolve(root, name) - : resolveModule(`vitest-environment-${name}`, { paths: [root] }) ?? resolve(root, name) + : await resolvePath(`vitest-environment-${name}`, { url: [root] }) ?? resolve(root, name) const pkg = await import(pathToFileURL(normalize(packageId)).href) if (!pkg || !pkg.default || typeof pkg.default !== 'object') { throw new TypeError( From 96cd97ce0c705e3f050965258c317c111bcb7362 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 14 Aug 2023 22:45:20 +0100 Subject: [PATCH 2/2] test: update test to use correct `package.json` --- test/env-custom/vitest-environment-custom/package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/env-custom/vitest-environment-custom/package.json b/test/env-custom/vitest-environment-custom/package.json index 62caa1e2b142..634d4cfe70f6 100644 --- a/test/env-custom/vitest-environment-custom/package.json +++ b/test/env-custom/vitest-environment-custom/package.json @@ -1,5 +1,7 @@ { "name": "vitest-environment-custom", "private": true, - "main": "index.mjs" + "exports": { + ".": "./index.mjs" + } }