2017-03-14 60 views
1

當我想要創建一個空的(!) - 應用程序時,我很難知道應該使用哪些程序包/庫。Angular2 npm包 - 我怎麼知道要下載什麼?

由開始的時候我在npmjs搜索angular2我得到不想要的結果,我需要點擊:

enter image description here

爲了得到一個messy list,我不知道,如果一個模塊可以另一個使用:

enter image description here

而且 - 即使我用@angular/core JS,我不知道我應該包括或文件使用其他組件。

讓我們舉個例子 - 我想用HTTP - The messy list doesn't contain any http in there當我去docs - 我看到它從@angular/http的,然後我再去npmjs並鍵入@angular/http,然後我才能去使用unpkg.com文件系統(使用unpkg.com的Chrome擴展)剛剛下載的js文件:

enter image description here

這是非常不友好。 (更不用說包中的變化經常發生 - 但互聯網永遠不會忘記

我不想使用angular-cli和下載的東西,我不知道他們是什麼做(如果我需要他們)。

於是我問:

問題

jQuery有一個download builder page,它允許您選擇要下載 - 根據您需要的東西。我如何才能下載(僅用於angular2)我需要的組件(及其依賴項組件)?

例如 - 我一直在尋找的system.js

map: { 
     // our app is within the app folder 
     app: 'app', 

     // angular bundles 
     '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
     '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
     '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
     '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
     '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
     '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
     '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
     '@angular/router/upgrade': 'npm:@angular/router/bundles/router-upgrade.umd.js', 
     '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
     '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js', 
     '@angular/upgrade/static': 'npm:@angular/upgrade/bundles/upgrade-static.umd.js', 

     // other libraries 
     'rxjs':      'npm:[email protected]', 
     'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js', 
     'ts':      'npm:[email protected]/lib/plugin.js', 
     'typescript':    'npm:[email protected]/lib/typescript.js', 

    }, 

at this basic angular 2 - plunker的地圖部分plunker的作者是如何知道哪些軟件包(除了common/core/http/router包似乎合法的取) - 下載?

有人可以請澄清一下還是我完全錯了?

+1

爲什麼不使用現有的快速啓動/種子項目? – jonrsharpe

+1

@jonrsharpe作爲一名高級開發人員 - 我不覺得有點奇怪,我想知道我在下載什麼 - 尤其是從頭開始的時候。並且我期望事情會更容易找到 - 除非 - 再次 - 我做這一切都是錯誤的。 –

+2

那你爲什麼不從'@ angular/core'開始,看看你得到了什麼錯誤? – jonrsharpe

回答

1

我明白你的痛苦,這是我在與Angular合作一年後所瞭解的。

1- Angular2是用Javascript編寫的,所以理論上你應該可以在你的index.html中添加一個腳本並啓動你的應用程序,但這不是首選的,也沒有完整的文檔和支持,幾乎所有的SO問題在typescript中編寫和回答。

因此,首先,你需要安裝的打字原稿:

npm install typescript. 

2-角已經投入了很多的努力,以單獨的模塊,但其中一些仍相互交織,但總體而言,這裏是主要的你需要開始。

'@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
    '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
    '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
    "rxjs": "^5.1.0", 
    "zone.js": "^0.7.6" 

你需要這五個來啓動一個應用程序。

你需要的核心,因爲它的核心。

您需要platform-browser-dynamic來引導你的應用程序模塊,否則你將無法運行它。

而且platform-browser-dynamic本身需要platform-browser

你,因爲角度被大量使用它,幾乎每一個異步函數需要rxjs。

你,因爲角被大量使用其所有changeDetection需要Zonejs(爲什麼地球上沒有它們包括在覈心呢?!)

就是這樣。


如何處理打字稿代碼?你需要運行tcs來編譯它,爲此你需要一個tsconfig.json(谷歌它)。

現在,如果您需要在express服務器上運行此代碼,您可能需要一個任務來觀察您的代碼並將其編譯爲ya,這些日子webpack似乎非常有前途並且彙總。

所以如果你想要的話,你需要安裝webpack,你可以把它看作是一個複雜的任務運行者,他可以將生成的+ minifed代碼綁定到ya。

而且webpack還提供了一個本地開發服務器(無需手動安裝express或...),它被稱爲webpack-dev-server,您可以安裝它,並且會照顧您的代碼並運行所有webpack作業。

我建議看看AngularClass的Angular2種子,嘗試刪除所有不必要的東西(因果報應,量角器,所有的爵士樂),然後從那裏。

一般來說,這是一個有點很難做到所有這些,我會建議使用CLI或AngularClass的種子。

順便說一句,除非你導入它們,否則cli或這些種子中的那百萬個模塊都不會捆綁在一起,所以除非你將其導入到項目中,否則無論你有多少項npm install

相關問題