2014-03-05 97 views
1

我寫了很多分析自耕農發電機的結構的包裝: https://github.com/tobiasoberrauch/yeoman-analyzer加快節點模塊許多安裝

因此我必須安裝所有發電機。這個解決方案花了很長時間(12小時)。我不太肯定的是目前的解決辦法是做到這一點的最好辦法:

  1. 獲取發電機名稱列表:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/data/generators.json

  2. 關於安裝發電機的名單發電機node_modules(VERY SLOW):https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L24

  3. 分析從每個發生器的index.js:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L47

  4. 報告寫入JSON文件:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/reporter/json.js#L21

有沒有一種方法,以加快這一進程? 2.花了很長時間。 我讀到緩存,本地註冊表(npmd),但我沒有找到一個適當的,可持續的解決方案。

我會任何暗示很高興:+1: 乾杯托比亞斯

+0

使用'npm install'和'--production'選項。這將使它忽略通常不需要的'devDependencies'。 – jgillich

回答

0

如果需要index.js而已,你不必安裝所有發電機。只需使用wget等工具從npm註冊表下載tarball,然後用tar xz解壓縮它。

+1

不要只是'index.js',不要讓一個軟件包做'main'任何他們想要的東西? –

+0

嗯,這是一個非常糟糕的風格,他們有點值得。 :)但是你是對的,程序應該先解壓package.json以檢查'main'。 – alex

+0

另外,這個問題在#3中特別提到了index.js,所以我做了相應的回答。 – alex

0

感謝您的提示。 這裏是我的(臨時)解決方案:從註冊表

  1. 獲取包數據:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L50

  2. 獲取最新版本:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L64

  3. 下載和/或提取壓縮包文件:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L129

  4. 從提取的文件中讀取package.json並獲取主文件:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L79

  5. 在主文件中找到的表達式:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L90

有時是zip文件空,下載突然停止或esprima分析器顯示意外的錯誤。但我有一個粗略的計劃來優化它。 這只是一個可怕的回調地獄。現在是時候進行優化和重組了。

相關問題