cor*_*vid 3 javascript meteor ecmascript-6 babeljs
我用来grigio:babel在流星中转译 es6。我有一个简单的文件,名为camera.es6提供相机功能
if (Meteor.isClient) {
class Camera {
constructor() {
}
getStream() {
return new Promise(function (resolve, reject) {
navigator.webkitGetUserMedia({ video: true }, resolve, reject);
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我进入浏览器控制台并尝试实例化一个新相机。
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)
Run Code Online (Sandbox Code Playgroud)
相机不是应该可以用吗?Babel 似乎说它应该将其转换为类似函数的结构,以使其在 ES5 中工作。我还尝试在 babel 的 repl 中运行它,它翻译得非常好
如何使用 Meteor 和 es6 访问我的课程?
小智 5
我想 babel 将你所有的代码包装到一个闭包中,所以你无法从控制台访问相机。尝试做这样的事情
window.Camera = Camera;
Run Code Online (Sandbox Code Playgroud)
类定义后