[英]Using new experimental Node's EventTarget class with ES6 modules
I'd like to try the new DOM-compatible EventTarget
class which is available as of Node.js 14.7.0 .我想尝试新的与 DOM 兼容的EventTarget
类,它从 Node.js 14.7.0 开始可用。
I'm only able to do so if I use it from a CommonJS
module, but not from an ES6 module.如果我从CommonJS
模块中使用它,我只能这样做,而不能从 ES6 模块中使用它。 For example:例如:
Running node --expose-internals test.js
works, where test.js
is:运行node --expose-internals test.js
有效,其中test.js
是:
const { Event, EventTarget } = require('internal/event_target');
const et = new EventTarget();
If I use it from an ES6 module, I'm getting an error:如果我从 ES6 模块使用它,则会收到错误消息:
test.mjs
: test.mjs
:
import { Event, EventTarget } from 'internal/event_target';
const et = new EventTarget();
Running node --expose-internals test.mjs
fails with:运行node --expose-internals test.mjs
失败:
SyntaxError: The requested module 'internal/event_target' does not provide an export named 'Event'
Is there a way to make it work with ES6?有没有办法让它与 ES6 一起工作?
It looks like it only exposes a default export which is an object, not named exports.看起来它只公开一个默认导出,它是一个对象,而不是命名导出。 So you have to import the default and then use destructuring:所以你必须导入默认值,然后使用解构:
import event_target from 'internal/event_target';
const { Event, EventTarget } = event_target;
const et = new EventTarget();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.