我使用 Webdriver.io 和 mocha 在 CoffeeScript 上编写测试。由CoffeeScript编译器处理的代码。
在我正在开发的项目中,决定切换到语法ES6。为了确保支持前面编写的代码,已连接 Babel 编译器,该编译器将不受支持的语法(例如import)转换为受支持的语法(require)。但是Mocha并没有提供同时运行两个编译器的可能性(至少,我在网络中找到了此信息)。
当然,一种解决方法是使用CoffeeScript编译器编译文件,将它们保存到临时文件夹,然后使用Babel编译器配置Mocha,以便Babel从临时文件夹编译转换后的文件:
coffee-with test/*.coffee
mocha compilers js: babel-core / register
但这不是最漂亮的决定:您必须使用两个命令而不是一个,用临时文件监视文件夹,等等。我想以某种方式用Babel在不使用临时文件夹和文件的情况下执行CoffeeScript文件。到目前为止,我在Internet上找到的所有信息都归结为以下事实:这是不可能的(关于我反复遇到的信息https://github.com/jashkenas/coffeescript/issues/4969)。但是也许有办法吗?
答案 0 :(得分:0)
有关此问题的基本信息,请参见https://www.npmjs.com/package/coffee-babel。 NPM咖啡袋包装解决了上述问题。
唯一的软件包:为了使该软件包在Mocha编译器的设置中的wdio.conf.js文件中正常工作,您需要连接coffee-babel软件包。这样做如下:
mochaOpts: {
...
...
require: ['coffee-babel'],
}