如何在PhantomJS中使用ES6

时间:2015-04-19 21:30:41

标签: phantomjs ecmascript-6

有没有办法使用ES6和模块与PhantomJS?

我可以使用Babel将每个文件从ES6转换为ES5,但是维护并行树(ES6中的一个和ES5中的另一个)很难并且编写导入以要求ES5模块。我正在寻找一个更清洁的解决方案。

我可以删除所有导入和导出代码,将模块连接在一起,将结果转换为单个文件,然后通过PhantomJS运行,但我更愿意使用导入和导出。

我尝试使用Browserify和babelify转换将ES6依赖树转换为单个ES5文件,但Browserify无法找到PhantomJS提供的模块,如webpage。我已经尝试通过放入package.json

来忽略这些模块
"browser": {
  "webpage": false
}

但导入webpage会返回一个空对象而不是PhantomJS模块。

是否有一种干净的方式将ES6模块与PhantomJS一起使用?

2 个答案:

答案 0 :(得分:12)

根据PhantomJS dev's comment on GitHub,ES6的全力支持将附带PhantomJS 2.5。

答案 1 :(得分:2)

Browserify的--exclude选项可以满足我的需求。

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

从依赖关系树中排除webpage但保留导入。