从 'events' 导入与从 'events' 导入 {EventEmitter} 有什么区别?

What's the difference between import from 'events' vs. import {EventEmitter} from 'events'?

似乎两者都可以。下面列出的两个 e1 都是 EventEmitter,可以这样使用。

import { EventEmitter } from "events";
let e1 = new EventEmitter();

import events from "events";
let e1 = new events();

我用谷歌搜索没有找到答案。我还研究了节点文档,发现差异从节点 4.x 开始(在 0.12.x,它仍然是 import from Events.EventEmitter)。

谁能帮忙解释一下这里有什么区别?

当您在从模块导入时使用大括号 { } 时,您是直接从名为 名为 exports 的模块而不是整个模块导入特定导出。

模块可以有一个默认导出,可以在不使用大括号的情况下导入。 import MyModule from './MyModule。此默认导出可以让您访问模块的其他导出,具体取决于模块如何处理它的导出。