javascript - package.json 中的 `main` 和 `module` 与 `exports` 有什么区别?

标签 javascript node.js import require commonjs

我正在尝试编写一个既可以是 require 的库d 和 import ed.在网上找到了不同的方法,如下:

{
  "main": "mylib-cjs.js",
  "module": "mylib-esm.js"
}

{
  "exports": {
    "import": "mylib-esm.js",
    "require": "mylib-cjs.js"
  }
}
两种方法的优缺点是什么,它们有何不同?

最佳答案

我认为你不应该使用 module了。它适用于 webpack 和其他一些捆绑工具,但不适用于 node.js。这是定义 ESM 入口点的旧方法。
因此,如果您正在编写纯粹的 FE 库,则可以使用模块,但在 node.js 中您需要使用 exports .在 type: module 中运行时,只有那个可以正常工作模式。
不确定捆绑器及其对 exports 的支持,但我希望它们与 Node 的入口点保持一致。

关于javascript - package.json 中的 `main` 和 `module` 与 `exports` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68572936/

相关文章:

javascript - 如何通过 javascript 插件/扩展隐藏地址栏、菜单栏等来操作跨浏览器窗口?

javascript - 为什么没有分号的代码在 JavaScript 中仍然可以工作?

javascript - 在 highcharts 中表达 json 对象

node.js - mean.io 在 Windows 上的安装

node.js - 为什么我无法通过网络共享连接到连接服务的网站?

javascript - 使用 AJAX 将数据从 Javascript 移动到 PHP

javascript - 按位不在 ruby 中

python - 导入在 __init__.py 中指定的变量

c# - 将 C 结构从 dll 转换为 C#

delphi - 导入的 ActiveX 控件是非可视的