@@ -2,6 +2,8 @@ import { pathToFileURL } from 'node:url'
22import { interopDefault } from 'mlly'
33import { resolveModulePath } from 'exsolve'
44import { createJiti } from 'jiti'
5+ import { getUserCaller , warn } from './trace'
6+ import { resolveAlias } from '../resolve'
57
68export interface ResolveModuleOptions {
79 /** @deprecated use `url` with URLs pointing at a file - never a directory */
@@ -58,17 +60,14 @@ export function tryImportModule<T = unknown> (id: string, opts?: ImportModuleOpt
5860 }
5961}
6062
61- const warnings = new Set < string > ( )
62-
6363/**
6464 * @deprecated Please use `importModule` instead.
6565 */
6666export function requireModule < T = unknown > ( id : string , opts ?: ImportModuleOptions ) {
67- if ( ! warnings . has ( id ) ) {
68- // TODO: add more information on stack trace
69- console . warn ( '[@nuxt/kit] `requireModule` is deprecated. Please use `importModule` instead.' )
70- warnings . add ( id )
71- }
67+ const caller = getUserCaller ( )
68+ const explanation = caller ? ` (used at \`${ resolveAlias ( caller . source ) } :${ caller . line } :${ caller . column } \`)` : ''
69+ const warning = `[@nuxt/kit] \`requireModule\` is deprecated${ explanation } . Please use \`importModule\` instead.`
70+ warn ( warning )
7271 const resolvedPath = resolveModule ( id , opts )
7372 const jiti = createJiti ( import . meta. url , {
7473 interopDefault : opts ?. interopDefault !== false ,
0 commit comments