ES6`export class A`等于`module.exports = A`吗?

当我看到巴贝尔编译的代码时,它们似乎并不相同。 实际上,前者转换为exports.A = A ,不等于module.exports = A (也许是module.exports.A = A ?)

那么有没有ES6风格的module.export = ? 或者语法仍然在ES6中? 或者ES6中不再推荐这种语法?

您可以使用

 export default class A { } 

要么

 class A { } export default A; 

哪个会导出为

 exports["default"] = A; module.exports = exports["default"]; 

这里有一个解释为什么在interop部分。

为了鼓励使用CommonJS和ES6模块,在导出默认导出时,除了exports["default"]之外,将另外设置module.exports

您可以在节点v6中使用以下内容

 "use strict" class ClassName { // class code } module.exports = ClassName 

将上面的文件保存为ClassName.js

要将其导入另一个文件Test.js:

 "use strict" var ClassName= require('./ClassName.js'); var obj = new ClassName( Vars . . . ); 

欲了解更多信息:

这里有一篇关于从Node v6中的模块中导出类的文章

不支持babel6 export default Amodules.export=A

你应该添加一个插件