mocha . ? 1 tests comple-6ren">
gpt4 book ai didi

node.js - 尝试让 Mocha 观看我的项目时出现 "No such module"错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:13 25 4
gpt4 key购买 nike

我试图让 Mocha 监视我的项目以进行测试并不断运行测试,但是当我使用 -w 标志时,我得到了一个错误。

这里测试执行的很好:

C:\Foo>mocha

.

? 1 tests complete (3ms)

这里还有 -w

C:\Foo>mocha -w


node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: No such module
at EventEmitter.<anonymous> (node.js:392:27)
at Object.<anonymous> (C:\Users\Greg\AppData\Roaming\npm\node_modules\mocha\bin\_mocha:203:11)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)

我在全局安装了 Mocha (npm install -g mocha),应该在项目本地安装。

我在 64 位 Windows 7 家庭高级版上使用 Node v0.6015、Mocha 1.0.1 和 Should 0.6.1。

最佳答案

通过更改几个 mocha 源代码文件,我能够使其在 Windows 上运行。在 npm install mocha 之后(在我的例子中,我只是为我的项目安装它,而不是全局安装):

1) 首先到node_modules\mocha\lib\utils.js 找到并修复watch 函数如下:

exports.watch = function(files, fn) {
var options = { interval: 100 };
files.forEach(function(file) {
debug('file %s', file);
fs.watch(file, options, function(curr, prev) {
fn(file);
});
});
};

我用 fs.watch 替换了 fs.watchFile(有关详细信息,请参阅 https://github.com/fgnass/node-dev/issues/26),因为第一个在 Windows 上似乎不起作用。

2) 现在打开 node_modules\mocha\bin\_mocha 并应用以下修复:

a) 查找并注释掉或删除以下代码:

process.on('SIGINT', function(){
showCursor();
console.log('\n');
process.exit();
});

由于上面没有等效的 POSIX 信号线,因此必须删除(理想情况下由适当的实现替换,请参阅 What is the Windows equivalent of process.on('SIGINT') in node.js? 了解更多详细信息)

b) 找到以下代码 utils.watch(watchFiles, function(){... 并将其替换为

  var lastRun = new Date();
utils.watch(watchFiles, function(){
if (new Date() - lastRun > 300)
{
purge();
stop()
mocha.suite = mocha.suite.clone();
ui = interfaces[program.ui](mocha.suite);
loadAndRun();
lastRun = new Date();
}
});

它限制了来自 fs.watch 的过多调用。

c) 最后的更改是删除或注释掉这一行:

  process.stdout.write('\r' + str);

函数 play(arr, interval) 中。它只是消除噪音。

关于node.js - 尝试让 Mocha 观看我的项目时出现 "No such module"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258248/

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