@eggjs/utils

中文文档
5.1.0发布于 2026/10/07MITTypeScriptES Module构建来源已验证近 30 天下载 4.9万

所有蛋类项目的 Utils

中文使用文档
文档目录10 节
  1. 安装
  2. API 密码
  3. getPlugins(options)
  4. getLoadUnits(options)
  5. getConfig(options)
  6. getFrameworkPath(options)
  7. setBundleModuleLoader(loader)
  8. 套装/ 快取模块加载钩
  9. 许可证
  10. 贡献者

@eggjs/ 无效

NPM version npm download Node.js Version

所有鸡蛋项目的Utils.

安装

npm i @eggjs/utils

API 密码

getPlugins(options)

  • {String} BaseDir - 当前应用目录
  • {String} 框架 - 框架目录
  • {String} env - 鸡蛋环境

getLoadUnits(options)

  • {String} BaseDir - 当前应用目录
  • {String} 框架 - 框架目录
  • {String} env - 鸡蛋环境

getConfig(options)

  • {String} BaseDir - 当前应用目录
  • {String} 框架 - 框架目录
  • {String} env - 鸡蛋环境

getFrameworkPath(options)

  • {String} BaseDir - 当前应用目录
  • {String} 框架 - 框架目录

setBundleModuleLoader(loader)

为捆绑的 Egg apps 注册一个模块加载器钩子 。 钩子在前行 常规 importModule() 解析路径.

  • {功能 {未定义} 加载器 - 接收此功能的同步函数 原文 filepath 引用到 importModule() pOSIX 分隔符后 常态化,或作虚拟分辨. 它没有得到解决 绝对文件路径从 importResolve()返回时 undefined 倒转到 普通导入路径.

捆绑装载器存储在 globalThis,因此捆绑和外部副本 @eggjs/utils 共享同一加载器。 无undefined 结果相同 默认导出打开规则为 importModule(),包括: importDefaultOnly。 。 。 .

套装/ 快取模块加载钩

importModule() 通过下列钩子解决模块,顺序。 这个 首先产生值的一方胜出; 否则它会回到本地 import() 编号 : require() 路径 :

  1. globalThis.__EGG_BUNDLE_MODULE_LOADER__ - 通过 setBundleModuleLoader()。查找一个已插入捆绑的模块 (通常为静态捆绑图,由 egg-bundler) (中文(简体) ). 在磁盘前运行 并接收 POSIX 规范化 importModule() 文件路径或一个 虚拟光谱. 返回时 undefined 掉下来.
  2. 快照模块加载器 - 通过 setSnapshotModuleLoader()。这是 模块本地钩子(不是 globalThis )用于V8快照条目 以已解决的键键同步服务预捆绑模块的生成器 路径。 注册后,它能处理到达它的每个负载,所以进口商 下文在活动时不参考.
  3. globalThis.__EGG_MODULE_IMPORTER__ — aync(或同步,自该值起) 正在等待) 接收已解析文件路径的导入者( importResolve() 结果,使用OS-native分离器——没有正常化)。 何时 设定,上面的两个钩子没有解决模块,它取代 本地语言 await import(filePath)。 。 。 .

装入器和进口全球输入器输入到 @eggjs/typings (单位:千美元)BundleModuleLoader 编号 : ModuleImporter; 导入 @eggjs/typings/global 要选择 上楼 declare global 扩能. 这些钩子是合同 egg-bundler所生成的条目依赖于 . @eggjs/core是因为 ManifestLoaderFS 咨询 __EGG_BUNDLE_MODULE_LOADER__ 直接;其进口商/国内退货者为: 通过 @eggjs/loader-fs,它唤回 importModule()编辑 装入器(LoaderUtil.loadFile)直接咨询两个全球,通过 装入器的文件路径, 分离器已正常化为 POSIX .

__EGG_MODULE_IMPORTER__ 有两个主要用途:

  • 基于 Bundler 的测试跑道( 如 Vitest) : 路由模块装入 运行器自己的模块图, 因此加载器和测试文件共享单个 模块实例( 否则) ctx.getEggObject(ClassRef) 失败 "无法得到原生".
  • V8 启动相机恢复 : 主函数不包含 主机动态导入回调, 所以本地 import() 掷出. 快照条目 安装同步 require()- 基于进口商(createRequire() 超过 捆绑输出目录 ; require() 可以在22号节点上装入无害环境管理,因此模块解析 没有动态导入.

许可证

麻省理工学院

贡献者

Contributors

制造的 贡献者-img。 。 。 .

版本与发布记录

@eggjs/utils 共发布 92 个版本,首次发布于 2023/05/28;过去 12 个月发布了 36 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
5.1.0latest2026/10/071 个月前
5.0.22026/10/061 个月前
5.0.2-rc.1rc2026/10/061 个月前
5.0.2-rc.02026/09/231 个月前
5.0.2-beta.27beta2026/09/201 个月前
5.0.2-beta.262026/08/073 个月前

关于 @eggjs/utils 的常见问题

@eggjs/utils 是什么?

所有蛋类项目的 Utils

如何安装 @eggjs/utils?

在项目目录运行 npm install @eggjs/utils,或使用 pnpm add / yarn add / bun add。

@eggjs/utils 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@eggjs/utils 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@eggjs/utils 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.18.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@eggjs/utils 可以商用吗?

@eggjs/utils 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@eggjs/utils 的下载量有多少?

根据 npm 官方下载统计,@eggjs/utils 在 2026/10/13 – 2026/11/11 这 30 天内被下载 48,885 次,日均约 1,630 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@eggjs/utils 还在维护吗?

最新版本 5.1.0 发布于 2026/10/07(1 个月前);至今共发布 92 个版本,其中过去 12 个月发布了 36 个;首次发布于 2023/05/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。