Babel不与Mocha一起工作并启动Node服务器

我正在帆和摩卡上运行sailsjs,mocha和babel。 当我运行之前,我的前function启动帆应用程序运行testing之前,我得到这个:

> PORT=9999 NODE_ENV=test mocha --recursive --compilers js:babel/register lifting sails 1) "before all" hook 0 passing (757ms) 1 failing 1) "before all" hook: Uncaught Error: only one instance of babel/polyfill is allowed 

对于我的生活,我无法弄清楚如何让摩卡运行巴贝尔同时运行巴贝尔的工作。

我的before()代码如下所示:

 import Sails from 'sails' // Global before hook before(function (done) { console.log('lifting sails') // Lift Sails with test database Sails.lift({ log: { level: 'error' }, models: { connection: 'testMongoServer', migrate: 'drop' }, hooks: { // sails-hook-babel: false babel: false } }, function(err) { if (err) { return done(err); } // Anything else you need to set up // ... console.log('successfully lifted sails') done(); }); }); 

我用帆,钩,巴贝尔,它的作品就像一个魅力。 这里要做到这一点:

  1. 安装npm install sails-hook-babel --save-dev
  2. 编辑你的bootstrap.js /之前函数加载巴贝尔,即

     var Sails = require('sails'), sails; var options = { loose : "all", stage : 2, ignore : null, only : null, extensions: null }; global.babel = require("sails-hook-babel/node_modules/babel/register")(options); before(function (done) { Sails.lift({ //put your test only config here }, function (err, server) { sails = server; if (err) return done(err); // here you can load fixtures, etc. done(err, sails); }); }); after(function (done) { // here you can clear fixtures, etc. sails.lower(done); }); 
  3. 现在您可以在testing中使用ES6了。

这里是参考:

  1. 在GitHub的巴别尔问题
  2. 我的博客 ,对不起,它是用印度尼西亚语写的,如果你愿意,可以使用谷歌翻译。