@contrast/esm-hooks
ECMAScript 模块(ESM) 相对节点的加载和仪器
探员 你不直接使用这个包。 代理人的无害环境管理切入点负荷
当应用程序开始时 node --import @contrast/agent (或
--loader 在18.7至18.18号节点上。 见
@contrast/agent 读取 如何启动应用程序.
如何运作
钩子安装在船上的代理 与对比,所以他们知道是否
评估、保护或两者均有效。 何时 Module.register() 可用
钩子运行在节点的装载器线上. 否则它们会被出口到
--loader 进入点. import-in-the-middle 登记时间越早
esm-hooks 组成到核心上, 并且只包裹一个简短的软件包列表
(单位:千美元)wrapPackages) (中文(简体) ).
- 解开钩子 (单位:千美元)
lib/hooks.mjs重新定向需要的模块
包装的仪器 lib/redirects/ (单位:千美元)builtin/, (中文(简体) ), cjs/, (中文(简体) ),
esm/,标记 URL ?csi-flag=builtin, (中文(简体) ), commonjs,或 module。 。 。 .
- 装入钩子 (单位:千美元)
lib/hooks.mjs)服务那些重定向文件和源
重写为 @contrast/rewriter。 。 。 .
- 装载器线和主线通过 a 进行通信
MessageChannel
(单位:千美元)lib/post-message/) (中文(简体) ).
调试
设定 CSI_HOOKS_LOG 用于记录钩子活动的位码:
| 数值 | 日志 |
1 | 无害环境管理 load() 和《刑法》 Module._load() 电话 |
2 | 无害环境管理 resolve() 电话 |
4 | 每张CJS require() 编辑 |
将比特合并到多个日志,例如:. CSI_HOOKS_LOG=3 以负载和确定.
关于 @contrast/esm-hooks 的常见问题
@contrast/esm-hooks 是什么?
支持装入和装入ECMAScript模块
如何安装 @contrast/esm-hooks?
在项目目录运行 npm install @contrast/esm-hooks,或使用 pnpm add / yarn add / bun add。
@contrast/esm-hooks 支持 TypeScript 吗?
该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/contrast__esm-hooks 是否存在。
@contrast/esm-hooks 支持 ESM 还是 CommonJS?
以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。
@contrast/esm-hooks 需要什么版本的 Node.js?
package.json 的 engines 字段要求 Node.js >=20.9.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。
@contrast/esm-hooks 可以商用吗?
@contrast/esm-hooks 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。
@contrast/esm-hooks 的下载量有多少?
根据 npm 官方下载统计,@contrast/esm-hooks 在 2026/10/11 – 2026/11/09 这 30 天内被下载 15,069 次,日均约 502 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。
@contrast/esm-hooks 还在维护吗?
最新版本 2.47.1 发布于 2026/11/05(6 天前);至今共发布 118 个版本,其中过去 12 个月发布了 23 个;首次发布于 2022/06/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。