如何在 WDIO Testrunner + Mocha 中连接两个编译器 CoffeeScript 和 Babel?
How to connect two compilers, CoffeeScript and Babel in WDIO Testrunner + Mocha?
我使用 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 文件,而不使用临时文件夹和文件。到目前为止,我在互联网上找到的所有信息都归结为不可能的事实(关于此类信息https://github.com/jashkenas/coffeescript/issues/4969我反复遇到)。但也许有办法?
在此处找到有关此问题的基本信息:https://www.npmjs.com/package/coffee-babel。 NPM coffee-babel 包解决了所描述的问题。
唯一的包:为了使包在Mocha编译器设置中的wdio.conf.js文件中正常工作,需要连接coffee-babel包。这是按如下方式完成的:
mochaOpts: {
...
...
require: ['coffee-babel'],
}
我使用 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 文件,而不使用临时文件夹和文件。到目前为止,我在互联网上找到的所有信息都归结为不可能的事实(关于此类信息https://github.com/jashkenas/coffeescript/issues/4969我反复遇到)。但也许有办法?
在此处找到有关此问题的基本信息:https://www.npmjs.com/package/coffee-babel。 NPM coffee-babel 包解决了所描述的问题。
唯一的包:为了使包在Mocha编译器设置中的wdio.conf.js文件中正常工作,需要连接coffee-babel包。这是按如下方式完成的:
mochaOpts: {
...
...
require: ['coffee-babel'],
}