当我看到Babel编译的代码时,它们似乎并不等同。
实际上,前者转换为exports.A = A
,这不等同于module.exports = A
(也许是module.exports.A = A
?)
那么有ES6风格module.export =
吗?或者语法仍然在ES6中?或者在ES6中不再推荐使用该语法?
答案 0 :(得分:16)
您可以使用
export default class A {
}
或
class A {
}
export default A;
将导出为
exports["default"] = A;
module.exports = exports["default"];
在互操作部分here.
中有一个解释原因为了鼓励使用CommonJS和ES6模块,除了
module.exports
之外,在导出默认导出时不会设置其他导出exports["default"]
。
答案 1 :(得分:6)
您可以在节点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 . . . );
更多信息:
Here's an article on exporting classes from modules in Node v6
答案 2 :(得分:2)
babel6不支持export default A
到modules.export=A
您应该添加plugin