Npm导入Meteor,测试与生产之间存在冲突

时间:2016-05-12 12:42:15

标签: meteor npm meteor-blaze

我正在构建一个Meteor应用程序,我正在使用jStat库。使用Meteor 1.3,我对导入有一些奇怪的麻烦。

当我使用import { jStat } from jStat时,我的测试正在传递并且正确加载了jStat。但它在生产中不起作用,jStat对象未定义。

当我使用import 'jStat'语法时,情况恰恰相反......在我的测试中,jStat未定义,但在我的模板中定义。

修改:我确实安装了meteor-node-stubs,但没有改变任何内容。 我也试过了import * as jStat from jStat,但它只有import jStat from jStat的效果。 它似乎是一个与jStat本身相关的问题,它有一种奇怪的加载行为(https://github.com/jstat/jstat#module-loaders)。

以下是我的文件:

/imports/math/rates.js

import { jStat } from 'jStat';

/**
 * Confidence interval calculation on proportions
 * @return {[type]} [description]
 */
export const Rates = function(){
    var self = this;

    self.ualpha = function(alpha){
        var mean = 0;
        var std =1;
        return jStat.normal.inv(1-alpha/2,0,1);
    };
    return self;
}();

/imports/math/rates.tests.js (rates.js的测试文件)

import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { Events } from '/collections/events.js';
import { Stubs } from '/imports/testing/stubs.js';
import { TestHelpers } from '/imports/testing/helpers.js';
import { assert } from 'chai';
import { Rates } from '/imports/math/rates.js';

describe('Rates Helpers', () => {
    beforeEach(()=>{
    });
    it("Should compute ualpha",()=>{
        var eps = 10e-7;
        assert.approximately(1.959964,Rates.ualpha(0.05),eps);
        assert.approximately(1.644854, Rates.ualpha(0.1),eps);
        assert.approximately(2.575829, Rates.ualpha(0.01),eps);
    });
});

/client/rates/ui/pages/experiment.js (模板)

import { Template } from 'meteor/templating';
import { Rates } from '/imports/math/rates.js';
import 'meteor/manuel:viewmodel';

Template.rates_experiment.viewmodel({
    alpha:0.01,
    rate: 0.5,
    precision: 0.01,
    interval:'constant',
    nIdeal : function(){
        var self = this;
        return Rates.nIdeal(self.rate, self.alpha, 'constant',self.precision);
    }
});

是否有人对导入存在同样的问题?

0 个答案:

没有答案