当前位置:  开发笔记 > 编程语言 > 正文

使用Babel和PhantomJS,评估在浏览器上下文中执行的函数无法访问辅助函数

如何解决《使用Babel和PhantomJS,评估在浏览器上下文中执行的函数无法访问辅助函数》经验,为你挑选了0个好方法。

我正在尝试将PhantomJS与Babel从ES6编译到ES5的脚本一起使用.

对于某些功能,Babel在文件末尾添加了一些辅助函数(比如_asyncToGenerator_typeof)来评估代码.

但是在Phantom中,有一个evaluate(function(){…})在浏览器上下文中执行的函数,因此它无法访问babel放入的那些辅助函数.

例如,如果我有一个代码:

var page = require('webpage').create();
page.open(url, function(status) {
  var title = page.evaluate(function() {
    typeof(document.title);
  });
});

它编译成

var page = require('webpage').create();
page.open(url, function(status) {
  var title = page.evaluate(function Executed_in_Browser_Context() {
    _typeof(document.title);
  });
});
function _typeof(obj) { return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; }

注意typeof已更改为_typeof(对于涉及ES6符号的某些功能)

这里,function Executed_in_Browser_Context它在浏览器上下文中执行,因此它无法访问function _typeof底部文件中定义的内容.因此导致错误

Can't find variable: _typeof

怎么解决这个?

我尝试复制_typeof内部Executed_in_Browser_Context(预编译)但是在编译之后,Babel看到并且认为它可能是我的代码中的其他函数,并且只是将其自身重命名为_typeof2导致相同的错误.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有