如何在 PhantomJS 中使用 ES6

How to use ES6 with PhantomJS

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

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

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

我尝试使用带有 babelify 转换的 Browserify 将 ES6 依赖树转换为单个 ES5 文件,但是 Browserify 找不到像 webpage 这样的 PhantomJS 提供的模块。我尝试通过输入 package.json:

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

但导入 webpage returns 空对象而不是 PhantomJS 模块。

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

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

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

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

根据PhantomJS dev's comment on GitHub,PhantomJS 2.5 将全面支持 ES6。