创建NPM链接实用程序 - 从下到上跟踪依赖项

时间:2017-04-12 19:15:43

标签: 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中没有其他依赖项。
  3. 之后我不确定。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我问NPM,有人说可能还没有这样的实用工具,所以我开始研究它:

https://github.com/ORESoftware/npm-link-up

随时提供反馈或贡献。

除了Rush,还有Lerna,Babel使用它。但我认为" npm-link-up"可能会更简单,更精简。