Error: cannot find module when testing with mocha
Error: cannot find module when testing with mocha
我正在使用 babeljs
编写 RPG 引擎库。我有两个文件:
dice.js
import assert from 'assert';
import Random from 'random-js';
export default class Dice {
constructor(maxNumber) {
assert(typeof(maxNumber) === "number", "maxNumber must be a number");
this._mt = Random.engines.mt19937();
this.minNumber = 1;
this.maxNumber = maxNumber;
}
makeThrow() {
this._mt.autoSeed();
return Random.integer(this.minNumber, this.maxNumber)(this._mt);
}
}
throwManager.js
从'assert'导入断言;
从 'dice' 导入骰子;
导出默认 class ThrowManager {
构造函数(设置){
断言(settings.hasOwnProperty("numberOfDices"),"must set 'numberOfDices'");
断言(settings.hasOwnProperty("maxNumberInDice"),"must set 'maxNumberInDice'");
断言(settings.maxNumberInDice <= 1,"must have at least 1 dice");
this.settings = 设置;
}
执行() {
var throwResults = [];
对于 (var d = 1; d <= this.settings.numberOfDices; d++) {
var dice = new Dice(this.settings.maxNumberInDice);
throwResults.push(dice.makeThrow());
};
return 抛出结果;
}
}
</pre>
当我用 mocha
测试它们时,我做了这些导入:
tests.js
var assert = require('assert');
var Amzhen = require('../Amzhen.js');
var random = require('random-js');
//tests here...
然而当我 运行 测试时,我得到了这个:
Error: Cannot find module 'dice'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/joel/Amzhen.js/Amzhen.js:47:28)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/joel/Amzhen.js/test/tests.js:2:14)
知道为什么找不到 dice
模块吗?
我正在用 babel src --out-file Amzhen.js && mocha
编译代码
你应该使用:
import Dice from './dice';
'dice'
不是已发布、已安装的 Node.js 模块的名称,而是本地文件,因此您应该使用带有适当路径的 ./dice
。
另见 Module not found error in node.js
我正在使用 babeljs
编写 RPG 引擎库。我有两个文件:
dice.js
import assert from 'assert';
import Random from 'random-js';
export default class Dice {
constructor(maxNumber) {
assert(typeof(maxNumber) === "number", "maxNumber must be a number");
this._mt = Random.engines.mt19937();
this.minNumber = 1;
this.maxNumber = maxNumber;
}
makeThrow() {
this._mt.autoSeed();
return Random.integer(this.minNumber, this.maxNumber)(this._mt);
}
}
throwManager.js
从'assert'导入断言; 从 'dice' 导入骰子; 导出默认 class ThrowManager { 构造函数(设置){ 断言(settings.hasOwnProperty("numberOfDices"),"must set 'numberOfDices'"); 断言(settings.hasOwnProperty("maxNumberInDice"),"must set 'maxNumberInDice'"); 断言(settings.maxNumberInDice <= 1,"must have at least 1 dice"); this.settings = 设置; } 执行() { var throwResults = []; 对于 (var d = 1; d <= this.settings.numberOfDices; d++) { var dice = new Dice(this.settings.maxNumberInDice); throwResults.push(dice.makeThrow()); }; return 抛出结果; } } </pre>
当我用
mocha
测试它们时,我做了这些导入:tests.js
var assert = require('assert'); var Amzhen = require('../Amzhen.js'); var random = require('random-js'); //tests here...
然而当我 运行 测试时,我得到了这个:
Error: Cannot find module 'dice' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/joel/Amzhen.js/Amzhen.js:47:28) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/joel/Amzhen.js/test/tests.js:2:14)
知道为什么找不到
dice
模块吗?我正在用
编译代码babel src --out-file Amzhen.js && mocha
你应该使用:
import Dice from './dice';
'dice'
不是已发布、已安装的 Node.js 模块的名称,而是本地文件,因此您应该使用带有适当路径的 ./dice
。
另见 Module not found error in node.js