diff --git a/docs/npm.md b/docs/npm.md
index d81bef9..97fe496 100644
--- a/docs/npm.md
+++ b/docs/npm.md
@@ -257,6 +257,36 @@ ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-
//somewhere.com/another/:_authToken=MYTOKEN2
```
+纯 ESM 包
+----
+
+### CommonJS 项目移动到 ESM
+
+
+- 将 `"type": "module"` 添加到您的 [package.json](./package.json.md)
+- 将 [package.json](./package.json.md) 中的 `"main": "index.js"` 替换为 `"exports": "./index.js"`。
+- 将 [package.json](./package.json.md) 中的 `"engines"` 字段更新为 Node.js 14: `"node": ">=14.16"`。(不包括 ~~Node.js 12~~,因为它不再受支持)
+- 删除 `"use strict"`;来自所有 JavaScript 文件
+- 将所有 `require()` / `module.export` 替换为 `import` / `export`
+- 仅使用完整的相对文件路径进行导入:`import x from '.';` → `import x from './index.js';`
+- 如果您有 `TypeScript` 类型定义(例如 `index.d.ts`),请将其更新为使用 ESM 导入/导出
+- 可选但推荐使用 `node:` 导入[协议](https://nodejs.org/api/esm.html#esm_node_imports)
+
+### TypeScript 项目输出 ESM
+
+
+- 确保您使用的是 TypeScript 4.7 或更高版本
+- 将 `"type": "module"` 添加到您的 [package.json](./package.json.md)
+- 将 [package.json](./package.json.md) 中的 `"main": "index.js"` 替换为 `"exports": "./index.js"`
+- 将 [package.json](./package.json.md) 中的 `"engines"` 字段更新为 Node.js 14: `"node": ">=14.16"`。 (不包括 ~~Node.js 12~~,因为它不再受支持)
+- 将 `"module": "node16"`, `"moduleResolution": "node16"` 添加到您的 [tsconfig.json](./typescript.md) ([列子](https://github.com/sindresorhus/tsconfig/blob/main/tsconfig.json))
+- 仅使用完整的相对文件路径进行导入:`import x from '.';` → `import x from './index.js';`
+- 删除 `namespace` 使用并改用 `export`
+- 可选但推荐使用 `node:` 导入[协议](https://nodejs.org/api/esm.html#esm_node_imports)
+- **即使您正在导入 `.ts` 文件,也必须在相对导入中使用 `.js` 扩展名**
+
+阅读[官方 ESM 指南](https://www.typescriptlang.org/docs/handbook/esm-node.html)
+
另见
----