将babeljs编译的文件与现有项目一起使用

时间:2015-04-13 17:19:28

标签: ecmascript-6 babeljs

我有一个用ES6编写的简单类

class MyClass {
  constructor() {
    this.firstVar = 'a';
    this.secondVar = 'b';
  }
  get first() { return this.firstVar; }
  set first(val) { this.firstVar = val; }

  get second() { return this.secondVar; }
  set second(val) { this.secondVar = val; }

  allValues() {
    return this.firstVar + this.secondVar;
  }
}

export { MyClass };

我通过babel MyClass.es6 > MyClass.js将代码编译到ES5,然后尝试在我现有的ES5代码库中使用它:

var t = require('./MyClass');
console.log(t.allValues());

但我得到一个错误,声明t没有方法allValues。我正在尝试做什么?

1 个答案:

答案 0 :(得分:3)

必须实例化类。您永远不会创建MyClass的实例。你也错误地导入它。您要将MyClass导出为名为export ,并且必须将其导入。

目前的形式,你必须做

var MyClass = require('./MyClass').MyClass;
var t = new MyClass();
console.log(t.allValues());

或者您可以将其导出为默认导出:

export default MyClass;

在这种情况下你可以做到

var t = require('./MyClass');

(至少与巴别塔一起)