例如,看看Dredd,当你使用dredd
command运行脚本时,它会使库Hooks可用。
命令行
$ dredd [...] --hookfiles=./hooks.js
hooks.js
const hooks = require('hooks');
...
它是如何工作的?
我是Dredd的维护者。在Dredd的案例中,它是使用proxyquire库实现的。我认为rewire做类似的事情。
查看npm link
,它可用于将本地模块“链接”在一起,就像它们是node_modules
目录中可见的依赖项一样。将代码拆分为库时,这非常有用。我不确定dredd
在做什么,但它很可能是基于npm link
范式。