最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

node.js - Custom nodejs module resolver throws module not found error - Stack Overflow

programmeradmin0浏览0评论

I'm trying to make changes to module resolver so that instead of needing to use relative paths like

import config from '../../../config.cjs'

i could use

import config from '@root/config'

loader.js:


import { join } from 'node:path';
import { pathToFileURL } from 'url';

export async function resolve(specifier, context, defaultResolve) {
  if (specifier.startsWith('@root')) {
    const root = process.cwd()

    const newSpecifier = pathToFileURL(join(root, specifier.slice(5))).href;

    return defaultResolve(newSpecifier, context, defaultResolve)
  }
  
  return defaultResolve(specifier, context, defaultResolve)
}

i use


node --import ./loader.js --trace-warnings index.js

to run the project

i get the error

node:internal/modules/esm/resolve:839
  throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), null);
        ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@root/config.cjs' imported from /data/data/com.termux/files/home/d_bot/Commands/Slash Commands/Utilities/pnr.js
    at packageResolve (node:internal/modules/esm/resolve:839:9)
    at moduleResolve (node:internal/modules/esm/resolve:908:18)
    at defaultResolve (node:internal/modules/esm/resolve:1038:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:554:12)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:523:25)
    at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:246:38)
    at ModuleJob._link (node:internal/modules/esm/module_job:126:49) {
  code: 'ERR_MODULE_NOT_FOUND'
}

Node.js v22.8.0
发布评论

评论列表(0)

  1. 暂无评论