我正在尝试编写一个既可以是 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/