我正在致力于创建一个 NPM 链接实用程序。
我有一个包,它也依赖于大约 7 或 8 个本地开发的包。我使用 NPM 链接将它们链接在一起。目前这是手动的,并且变得乏味,希望使用实用程序将其自动化。我认为最好的办法是开始链接没有依赖项的包,然后逐步链接到具有最多依赖项的包。
它看起来像这样:
A (my main NPM project)
/ \ \
/ \ \
B C H __
/ \ / \ \
/ \ / \ \
D E I J K
\ /
\ /
\ /
F
假设 - 我应该从树的底部开始并向上工作。
我可以使用什么数据结构/算法来轻松实现这一点?
考虑到上面的树,有效代码将如下所示:
# start with F and work upwards
cd F && npm link .
cd E && npm link F && npm link .
cd D && npm link .
cd B && npm link D && npm link E && npm link .
# etc etc
所以我认为算法应该是这样的:
- 创建本地开发项目的唯一列表 L(相对于仅远程项目)。
- 从主项目开始,深入到树中(使用 package.json 查找声明的依赖项),直到找到列表 L 中但在列表 L 中没有其他依赖项的依赖项集。
之后我就不确定了。
最佳答案
尝试http://aka.ms/rush -- 这是解决您问题的工业级解决方案。
关于node.js - 创建 NPM 链接实用程序 - 从下到上跟踪依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43377870/