指定特定testing的节点版本

如果节点版本大于x,是否可以在package.json的test指定运行某个testing? 目前,我正在使用摩卡咖啡和我的脚本如下所示:

 if [node --version > '0.10'] then mocha --harmony ./tests/koa/*.js else mocha ./tests/*.js 

我发现似乎可以使用if语句,但是使用上面的语句只是给了我一个错误:– --version was unexpected at this time.

所以,这不是我想做的事情,但我最终搞乱了.travis.yaml文件并创build了一个脚本。 首先,我在package.json中创build了一个新脚本,如下所示:

 "scripts": { "test": "mocha --harmony ./tests/koa/*.js && mocha ./tests/*.js", "0.10": "mocha ./tests/*.js" } 

然后我编辑.yaml文件到以下内容:

 language: node_js node_js: - 0.12 - 0.11 - 0.10 - iojs script: nv=$(node -v); if [[ $nv != v0.10.36 ]] ; then npm test; else npm run 0.10; fi 

并且您可以在不同的节点版本中使用您的testing。 即使你想支持v​​0.10,当你想使用–harmony也是非常方便的,但我相信还有更好的办法。

编辑:信贷给@gniourf_gniourf给我正确的方向。