gpt4 book ai didi

node.js - Babel 无法使用 Mocha 并启动 Node 服务器

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:09 25 4
gpt4 key购买 nike

我在 sails 和 mocha 上运行 sailsjs、mocha 和 babel。当我运行之前的函数以在运行测试之前启动 sails 应用程序时,我得到以下结果:

> 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

对于我来说,我无法弄清楚如何让 mocha 运行 babel 和 sails 运行 babel 同时工作。

我的 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();
});
});

最佳答案

我使用 sails-hook-babel,它的效果就像一个魅力。在这里做到这一点:

  1. 安装npm install sails-hook-babel --save-dev
  2. 在加载 babel 的函数之前编辑 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. Babel 问题位于 GitHub
  2. My Blog ,抱歉,它是用印度尼西亚语写的,如果需要,请使用谷歌翻译。

关于node.js - Babel 无法使用 Mocha 并启动 Node 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31365483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com