2015-07-12 47 views
1

我在帆和摩卡上運行sailsjs,mocha和babel。當我跑,我之前函數運行測試之前啓動帆的應用程序,我得到這個:Babel不適用於Mocha並啓動節點服務器

> 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 

對於我的生活,我無法弄清楚如何使摩卡運行巴貝爾和運行巴貝爾帆同時工作。

我之前()的代碼如下所示:

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

我用帆 - 鉤巴貝爾和它的作品就像一個魅力。在這裏做到這一點:

  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. 現在你可以在您的測試中使用ES6。

下面是引用:

  1. 巴貝爾問題在GitHub
  2. My Blog,對不起,它寫在印尼語,使用谷歌,如果你想翻譯。
相關問題