【发布时间】:2016-09-20 13:51:29
【问题描述】:
我正在尝试从 Node.js 6.2.0 中的 CommonJS 模块导出 ES6 类
class MyClass{
//class contents here
}
exports = MyClass;
然后将其导入另一个模块:
var MyClass = require('/path/to/module.js')
var instance = new MyClass();
但是我得到以下异常:
TypeError: MyClass is not a constructor
我怎样才能正确地做到这一点?
请注意,我没有使用 Babel/Tranceur,它是在最新的 Node 6.2.0 中实现的纯 JS,根据 Kangax 的说法,它在 93% 中实现了 ES6。
//编辑:这不是exports vs module.exports的问题。单独使用导出时,我得到了一些带有__proto__ 设置的对象。
【问题讨论】:
-
在需要模块后尝试记录你得到的东西。 如果不是构造函数,那是什么?
-
“这不是 export 与 module.exports 的问题” 是的!
exports = MyClass;不导出任何内容。这是一个noop。module.exports = ...;是从模块中导出单个值的方法。副本解释了为什么exports = ...;不起作用。 -
您应该将@Bergi 的答案标记为正确(点击答案左侧的灰色“检查”按钮)
标签: javascript node.js ecmascript-6 commonjs