2015-10-06 66 views
0

我的理解是,包括Angular2在內的AngularJS是一個客戶端框架,而Node.JS是一個服務器端平臺。他們不應該交叉。但是我發現所有的Angular2教程都使用Node/NPM。這是爲什麼?Angular2與NodeJs合作

+0

最有可能的節點模塊被用作構建過程/開發環境的一部分。如果你想要特定的答案,但你必須要問一個更具體的問題 – Phil

+0

只是不要擔心這些教程。這些是一個簡單的開始。一個真正的項目是複雜而簡單的,npm install最初可以解決這個問題,但是使用一個打包程序如webpack或gulp捆綁和配置所有這些都是完全不同的故事。從預先構建的angular2種子開始就沒有問題,但是你會因爲更好的理解和最佳實踐而失敗。大多數種子仍然沒有遵循基本組件和子組件設計。 – user2379441

回答

4

因爲npm是用JavaScript編寫的包的包管理器,並且JavaScript可以在客戶端和服務器端運行。換句話說,前端和後端應用程序都可以從包中受益。許多開發工具也使用節點作爲基礎過程(例如Jest-cli)。

+1

你是對的。捆綁商如gulp和webpack推動了這一舉措。然而,我仍然不是這些技術的忠實粉絲,即使對於一個小項目來說,管理它們似乎也是一種矯枉過正,忘記了具有各種組件級別的項目。 – user2379441

+0

比使用涼亭:) –

0

我建議你只在客戶端使用angular2。當涉及到處理常規服務器端代碼的視圖容器時,angular2的性能真的很明顯。在NodeJS方面,我會推薦使用es6功能。這已經徹底改變了你不僅可以編碼,而且還有性能。

0

您看到大多數使用npm的教程的原因是因爲他們使用TypeScript或使用Node轉換爲ES5或構建項目的構建工具。 但是,您仍然可以使用Angular2的sfx版本(自執行包)和使用ES5語法來構建Angular2應用程序,而無需使用節點或npm。這裏是一篇博客文章,展示如何做到這一點 http://blog.thoughtram.io/angular/2015/05/09/writing-angular-2-code-in-es5.html

0

Angular2是一個前端框架,但大量的工具,協助建立Angular2應用程序可通過NPM。

如果你想要一個專門針對前端開發的包管理器,我建議使用JSPM。它支持各種格式的前端模塊(即AMD,CommonJS,UMD),可以處理開箱即用的轉換,並可用作連接/縮小應用程序代碼的構建工具。

對於其他許多實用程序,您仍然需要NPM,並且需要用於測試的後端服務器(我建議使用實時服務器)。

就後端而言。其中一個Angular2開發團隊正在開發支持JS同構呈現的Node/Express擴展。簡而言之,它在服務器上預渲染視圖,以便用戶可以在應用程序加載到後臺時在瀏覽器中與其進行交互。啓動全功能SPA的開始時間仍然會很慢(相對),但感知速度將是瞬間的。