Skip to content

Commit

Permalink
feat: add deps.registerNodeLoader option (#1751)
Browse files Browse the repository at this point in the history
  • Loading branch information
sheremet-va committed Jul 31, 2022
1 parent 30e03f1 commit 40e4dba
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 7 deletions.
9 changes: 9 additions & 0 deletions docs/config/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,15 @@ When a dependency is a valid ESM package, try to guess the cjs version based on

This might potentially cause some misalignment if a package has different logic in ESM and CJS mode.

#### deps.registerNodeLoader

- **Type:** `boolean`
- **Default:** `true`

Use [experimental Node loader](https://nodejs.org/api/esm.html#loaders) to resolve imports inside `node_modules`, using Vite resolve algorithm.

If disabled, your `alias` and `<plugin>.resolveId` won't affect imports inside `node_modules` or `deps.external`.

#### deps.interopDefault

- **Type:** `boolean`
Expand Down
2 changes: 2 additions & 0 deletions packages/vitest/src/node/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ export function resolveConfig(
}
}

resolved.deps.registerNodeLoader ??= true

resolved.testNamePattern = resolved.testNamePattern
? resolved.testNamePattern instanceof RegExp
? resolved.testNamePattern
Expand Down
16 changes: 9 additions & 7 deletions packages/vitest/src/node/pool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,15 @@ export function createPool(ctx: Vitest): WorkerPool {
maxThreads,
minThreads,

execArgv: [
'--require',
suppressLoaderWarningsPath,
'--experimental-loader',
loaderPath,
...conditions || [],
],
execArgv: ctx.config.deps.registerNodeLoader
? [
'--require',
suppressLoaderWarningsPath,
'--experimental-loader',
loaderPath,
...conditions || [],
]
: [],
}

if (ctx.config.isolate) {
Expand Down
6 changes: 6 additions & 0 deletions packages/vitest/src/types/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@ export interface InlineConfig {
* @default false
*/
fallbackCJS?: boolean

/**
* Use experimental Node loader to resolve imports inside node_modules using Vite resolve algorithm.
* @default true
*/
registerNodeLoader?: boolean
}

/**
Expand Down

0 comments on commit 40e4dba

Please sign in to comment.