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 A
到modules.export=A
你应该添加一个插件