node.js - 创建 NPM 链接实用程序 - 从下到上跟踪依赖关系

标签 node.js data-structures npm tree dependency-tree

我正在致力于创建一个 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

所以我认为算法应该是这样的:

  1. 创建本地开发项目的唯一列表 L(相对于仅远程项目)。
  2. 从主项目开始,深入到树中(使用 package.json 查找声明的依赖项),直到找到列表 L 中但在列表 L 中没有其他依赖项的依赖项集。

之后我就不确定了。

最佳答案

尝试http://aka.ms/rush -- 这是解决您问题的工业级解决方案。

关于node.js - 创建 NPM 链接实用程序 - 从下到上跟踪依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43377870/

相关文章:

node.js - 每秒真实世界的 mongo 查询/更新

c++ - 什么数据结构更适合用于存储和排序<int, int>结构?

Angular CLI 版本与 Angular 版本不兼容

javascript - npm 发布卡住(使用 yarn )

node.js - 在 Azure 移动应用的 Azure 表脚本中插入不同的表

javascript - 有没有更好的方法来避免 if/then/else?

javascript - 从 ejs 文件连接到 mysql

c - 如何在不同文件中使用struct C编程

algorithm - 在给定数字n的情况下,如何打印大小为m的所有子序列?

javascript - npm outdated 命令在当前版本中显示 MISSING