从另一个模块导出的背后原因是什么?

What is the reasoning behind exporting from another module?

为什么可以从另一个模块导出?

export * from …;
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;

如果导入 module/script 确实需要来自第三个模块的功能,那么它可以自己导入这些功能。那为什么不呢?我真的不明白这个功能的目的。除了在函数 类 等的确切位置造成混淆之外,这还有什么吗?

它允许更大的模块化组织。例如,假设您正在创建一个库,消费者希望能够从库的根目录 index.js 导入所有内容。通过使用export .. from,您可以在同一个文件(或同一个文件夹)中编写具有相关功能的函数,然后,在index.js中,将它们导出一次全部,尽管分布在整个代码库中。

这比告诉库的使用者仔细查找他们需要从哪个子模块导入特定对象要容易得多。