diff --git a/docs/npm.html b/docs/npm.html index ebd3fc51..8ea3493c 100644 --- a/docs/npm.html +++ b/docs/npm.html @@ -42,7 +42,7 @@

这个 npm 快速参考备忘单显示了它的常用命令使用清单

常用命令

包管理

@@ -398,6 +398,33 @@ ; 将适用于 @another //somewhere.com/another/:_authToken=MYTOKEN2 +

纯 ESM 包

+

CommonJS 项目移动到 ESM

+ +
    +
  • "type": "module" 添加到您的 package.json
  • +
  • package.json 中的 "main": "index.js" 替换为 "exports": "./index.js"
  • +
  • package.json 中的 "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: 导入协议
  • +
+

TypeScript 项目输出 ESM

+ +
    +
  • 确保您使用的是 TypeScript 4.7 或更高版本
  • +
  • "type": "module" 添加到您的 package.json
  • +
  • package.json 中的 "main": "index.js" 替换为 "exports": "./index.js"
  • +
  • package.json 中的 "engines" 字段更新为 Node.js 14: "node": ">=14.16"。 (不包括 Node.js 12,因为它不再受支持)
  • +
  • "module": "node16", "moduleResolution": "node16" 添加到您的 tsconfig.json (列子)
  • +
  • 仅使用完整的相对文件路径进行导入:import x from '.';import x from './index.js';
  • +
  • 删除 namespace 使用并改用 export
  • +
  • 可选但推荐使用 node: 导入协议
  • +
  • 即使您正在导入 .ts 文件,也必须在相对导入中使用 .js 扩展名
  • +
+

阅读官方 ESM 指南

另见

  • npm 仓库、网站和命令行界面的文档 (npmjs.com)
  • diff --git a/docs/package.json.html b/docs/package.json.html index fa47d940..17397895 100644 --- a/docs/package.json.html +++ b/docs/package.json.html @@ -41,7 +41,7 @@

    这个快速参考备忘清单,显示了关于 package.json 文件中所需内容的全部内容。

重要字段

介绍

本快速参考备忘清单是您需要了解的关于 package.json 文件中所需内容的全部内容。 它必须是实际的 JSON,而不仅仅是 JavaScript 对象字面量。

    @@ -299,8 +299,8 @@ "exports": "./dist/index.js" } -

条件导出(exports)

- +

条件导出(exports)

+ @@ -339,7 +339,7 @@ }

注意:由于 requireimport 互斥,所以 require 不能加载 es 的模块,export 不能加载 cjs 模块

-

导出和导入

+

main Vs exports

{
   "main": "./index.js",
   "exports": "./index.js"