类 未在控制台中显示:es6 和 meteor

Classes not showing up in console: es6 and meteor

我正在使用 grigio:babel 在 meteor 中转译 es6。我有一个名为 camera.es6 的简单文件来提供相机功能

if (Meteor.isClient) {
  class Camera {
    constructor() {
    }
    getStream() {
      return new Promise(function (resolve, reject) {
        navigator.webkitGetUserMedia({ video: true }, resolve, reject);
      });
    }
  }
}

然后我进入我的浏览器控制台并尝试实例化一个新相机。

var c = new Camera()
VM1898:2 Uncaught ReferenceError: Camera is not defined
    at <anonymous>:2:13
    at Object.InjectedScript._evaluateOn (<anonymous>:905:140)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:838:34)
    at Object.InjectedScript.evaluate (<anonymous>:694:21)

相机不应该可用吗? Babel 似乎在说它应该只是将其转换为类似函数的结构以使其在 ES5 中工作。我也尝试在 babel 的 repl and it translated perfectly fine

中 运行

如何使用 meteor 和 es6 访问我的 类?

我想 babel 将您所有的代码包装到一个闭包中,因此您无法从控制台访问 Camera。尝试做这样的事情

window.Camera = Camera;

class定义后