1

我已经在全球范围内安装了 mocha 并使用它来运行一些测试:

$> mocha test.js

在 test.js 文件的根目录中,我想对 mocha 进行猴子补丁:

require('mocha').Runner.prototype.runTests = function() {...}

但是 require('mocha') 失败,因为 mocha 不在 node_modules 中,而是全局安装。

如果我在我的项目中本地安装 mocha,则 require('mocha') 会找到它,但它与用于执行的环境模块不同,因此补丁不好。

如果我从本地存储库而不是全局存储库运行 mocha,那么一切正常:

$> ./node_modules/mocha/bin/mocha test.js

但是我想从全局存储库中运行 mocha。任何想法?

编辑:我放弃了访问全局 mocha 模块的尝试,似乎在本地运行 mocha 并且在本地需要它对于我的用例来说已经足够了。

4

1 回答 1

0

鉴于它npm root -g告诉您所有全局节点模块的安装目录(/usr/local/lib/node_modules在我的机器上)并且您可以将绝对路径传递给require,因此可以这样做:

var mocha = require("/usr/local/lib/node_modules/mocha");

这会加载 mocha 的全局安装。

于 2016-04-19T11:52:32.403 回答