# @contrast/esm-hooks 中文文档

规范地址：https://npmcn.com/package/%40contrast/esm-hooks/

版本：2\.47\.1
npm 元数据更新时间：2026-11-04T16:30:46.965Z
中文译文更新时间：2026-11-10T17:15:31.613Z
软件包许可：SEE LICENSE IN LICENSE

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40contrast/esm-hooks
原文对照：https://npmcn.com/package/%40contrast/esm-hooks/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：40.9 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20\.9\.0
- 运行依赖：8 个
- 首次发布：2022-06-16T12:57:04.746Z
- 最新版本发布：2026-11-04T16:30:46.738Z
- 近 30 天下载量：15069（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：118（近 12 个月 23 个）

## 中文简介

支持装入和装入ECMAScript模块

## 安装

```sh
npm install @contrast/esm-hooks
```

也可以使用：`pnpm add @contrast/esm-hooks`、`yarn add @contrast/esm-hooks`、`bun add @contrast/esm-hooks`

## README

# `@contrast/esm-hooks`

ECMAScript 模块(ESM) 相对节点的加载和仪器 探员 你不直接使用这个包。 代理人的无害环境管理切入点负荷 当应用程序开始时 `node --import @contrast/agent` (或 `--loader` 在18.7至18.18号节点上。 见 [`@contrast/agent` 读取](https://www.npmjs.com/package/@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 是什么？

支持装入和装入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 和提交记录判断。

