让我们说我使用的包A取决于包B.在我的代码中我只需要A.如何强制A加载包C而不是包B?< / p>
这样做的目的是,有时如果C是B的分支,但是以不同的名称发布,我想强制库A使用C代替B。
是否有任何npm软件包可以帮助解决这个问题,并且可以在没有风险的情况下用于生产?
答案 0 :(得分:0)
这种方法广泛用于不使用依赖注入的应用程序的单元测试,但使用常见的js模块。
例如,您可以使用npm模块proxyquire。
样品:
a: Rule 1 a
--->q0--->(q1)
b: Rule 1 b
--->q0--->(q1)
a*: Rule 4 +-------------+
| e |
V |
--->(q0)--->q0'--->(q1)
e a
b*: Rule 4 +-------------+
| e |
V |
--->(q0)--->q0'--->(q1)
e b
a*b*: Rule 2 +-----------+
| | e
V e a |
--->q0--->q0'--->q1
| |
e | | e
+-----------+--+
| | e
V e b |
(q2)--->q2'--->(q3)
a*b*: Rule 2 +-----------+
| | e
V e a |
--->q0--->q0'--->q1
| |
e | | e
+-----------+
| | e
V e b |
q2--->q3'--->q3
| |
e | | e
+-----------+--+
| | e
V e a |
(q4)--->q5'--->(q5)