2016-03-15 74 views
1

我有一些關於包括Angular2在內的MEAN-app項目結構的基本問題。我按照angular.io的開始教程構建了一個非常基礎的Angular2應用程序。現在我嘗試在這個tutorial之後將此應用程序集成到NodeJS項目中。問題在於本教程是在第一個Angular的時候編寫的。Angular 2和NodeJS項目設置

我的問題是:

  1. 我應該在哪裏把我Angular2應用程序的NPM包? 公用文件夾(所以應用程序有自己的packages.json)或 節點packages.json中?
  2. tsc編譯器應該如何實現?

布魯諾

+0

你應該去'gulp'任務來編譯打字稿文件或者也可以單獨編譯。 –

+0

但推薦的方式是什麼? – Bruno

+0

@Pradeep,'glup'在IDE中自行編譯還是在瀏覽器中編譯? – micronyks

回答

1

我有一個非常類似的問題,當第一次開始向angular2遷移。 Angular.io教程使用System.js作爲模塊,它基本上與使用CommonJS的Node不兼容。這給你兩個選擇。

  1. 分別爲客戶端和服務器設置Typescript編譯器和節點模塊。

  2. 在客戶端上使用類似於Browserify的CommonJS模塊。

現在對我來說,只有第二個選項是一個不錯的選擇。設置兩次失敗的原因是跨客戶端&服務器使用相同的語言。

我已經準備好了用於Angular 2的Boilerplate以便快速開始使用Browserify。 您可以查看right here.

現在您只需爲您的客戶端應用程序創建一個公用文件夾,併爲您的節點模塊創建靜態路由。它可能是這個樣子:

app.use(express.static(__dirname + '/public')); 
app.use("/node_modules",express.static(__dirname + '/../node_modules')); 

我個人使用VS代碼任務編譯我打字原稿,然後用Watchify在客戶端捆綁它一起。在服務器端,我使用nodemon監視任何更改並在編譯時重新啓動服務器。

+0

那麼browserify和gulp有什麼區別? – Bruno

+0

Gulp是一個構建工具,而browserify是模塊解析的工具。如果您願意,可以將兩者一起使用,但是,我希望保持簡單並僅使用Browserify。 –

+0

https://www.viget.com/articles/gulp-browserify-starter-faq –