2017-04-12 71 views
1

林正在努力創造一個NPM鏈接工具創建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中沒有其他依賴關係集合。

之後,我不知道LOL

回答

1

嘗試http://aka.ms/rush - 這是一個工業強度的解決方案,您的問題。

+0

感謝看起來很有趣 –

+0

呃,這個工具還是和Gulp耦合的。我個人不喜歡Gulp,寧願只是使用Bash。 –

0

我問NPM,有人說有可能不存在這樣的效用,所以我就開始自己着手:

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

隨時提供意見或作出貢獻。

除了Rush,還有巴貝爾使用的Lerna。但我認爲「npm-link-up」可能會更加簡單和精簡。