2016-01-07 80 views
3

節點/ NPM版本:過多的節點模塊angular2快速入門安裝

節點:V5.4.0,NPM:3.3.12

我想通過下面的快速入門教程學習Angular2 angular2網站。

Angular2 Quickstart

這裏是我的package.json文件(完全一樣的教程)。

{ 
    "name": "angular2-quickstart", 
    "version": "1.0.0", 
    "scripts": { 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" " 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "angular2": "2.0.0-beta.0", 
    "systemjs": "0.19.6", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.0", 
    "zone.js": "0.5.10" 
    }, 
    "devDependencies": { 
    "concurrently": "^1.0.0", 
    "lite-server": "^1.3.1", 
    "typescript": "^1.7.3" 
    } 

當我運行npm install時,npm在node_modules文件夾(幾百個單獨的模塊)中安裝了90MB以上的模塊。

應該有這麼多的依賴關係嗎?我覺得這太過分了,而且一定會出錯。任何建議或有任何人經歷過類似的行爲?

NPM安裝沒有引發任何錯誤。

該應用運行良好,但我無法找到任何關於該應用所需的所有node_modules的信息。謝謝。

+3

我做了一些研究,發現新版本的npm做了'扁平模塊安裝'(在依賴關係中不再嵌套node_module文件夾)。所以這可以解釋爲什麼依賴關係看起來過度。但有人確認大約90MB的node_module目錄大小仍然很棒。 – user2263572

+0

是的,我確實在研究之前和之後都遇到了同樣的問題,我發現這同樣是因爲npm的更新版本。 –

回答

1

其實並非所有這些都是必要的。

例如:

"devDependencies": { 
    "concurrently": "^1.0.0", 
    "lite-server": "^1.3.1", 
    "typescript": "^1.7.3" 
} 

打字稿的模塊可以刪除,但我知道angular2建議編寫代碼爲打字稿,更安全,strong-typed.You可以用js或CoffeeScript的太多,它並不是什麼大不了的事。

最重要的模塊是

"angular2": "2.0.0-beta.0", 
"es6-promise": "^3.0.2", 
"es6-shim": "^0.33.3", 

NG2是剛下ES6,所以你需要 「ES6-XXXX」。

我不認爲這些模塊佔用90MB空間,但NPM總是在兩個模塊之間安裝一些相同的子模塊。我不知道這個問題是否得到處理(似乎不是)。

+0

我使用舊版本的npm進行了測試,90MB大致上是本教程中列出的所有依賴項的文件大小。 – user2263572

+0

所以問題在於你不知道模塊內部是否有相同的子模塊,這些子模塊是否會帶入你的程序中。例如,當你使用koa和koa-router時,它們都會採用這個模塊,兩個合作模塊都將佔用空間來存儲。 –