如何将ES6与PhantomJS一起使用

如何将ES6与PhantomJS一起使用,phantomjs,ecmascript-6,Phantomjs,Ecmascript 6,有没有办法将ES6和模块与PhantomJS一起使用 我可以使用Babel将每个文件从ES6传输到ES5,但是维护并行树(一个在ES6中,另一个在ES5中)并编写需要ES5模块的导入很困难。我在寻找一种更清洁的解决方案 我可以删除所有导入和导出代码,将模块连接在一起,将结果传输到单个文件中,然后通过PhantomJS运行,但如果可能,我更喜欢使用导入和导出 我尝试使用带babelify转换的Browserify将ES6依赖关系树转换为单个ES5文件,但Browserify找不到PhantomJS

有没有办法将ES6和模块与PhantomJS一起使用

我可以使用Babel将每个文件从ES6传输到ES5,但是维护并行树(一个在ES6中,另一个在ES5中)并编写需要ES5模块的导入很困难。我在寻找一种更清洁的解决方案

我可以删除所有导入和导出代码,将模块连接在一起,将结果传输到单个文件中,然后通过PhantomJS运行,但如果可能,我更喜欢使用导入和导出

我尝试使用带babelify转换的Browserify将ES6依赖关系树转换为单个ES5文件,但Browserify找不到PhantomJS提供的模块,如
网页
。我试图通过放入我的
包.json来忽略这些模块:

"browser": {
  "webpage": false
}
但是导入
webpage
会返回一个空对象,而不是PhantomJS模块

有没有一种干净的方法可以将ES6模块与PhantomJS一起使用?

Browserify的
--exclude
选项满足我的需要

browserify --exclude webpage -t babelify script.js --outfile compiled.js
phantomjs compiled.js

这将
网页
从依赖关系树中排除,但保留导入。

根据,PhantomJS 2.5将提供对ES6的全面支持。

当您说browserify找不到PhantomJS提供的模块,如
网页
,您的意思是,browserify试图在您不需要这些模块的情况下在中编译这些模块,还是希望在中编译这些模块,而这些模块被忽略?我需要
require('webpage')
,这会导致browserify也查找名为
webpage
的节点模块。它抛出一个找不到的错误。我不需要编译模块。我不知道为什么这回答了这个问题。是的,它解决了PhantomJS中缺少的ES6特性。然而,如果你想运行“真正的”ES6功能而不首先传输它们,这就不是一个解决方案。鉴于PhantomJS,我们不太可能看到2.5版发布。