2013-12-09 67 views
0

我一直在嘗試Node.js一段時間,並用簡單的項目Express,HapiRestify一起入侵。這些小型項目的前端非常小且有限,因爲我主要關注後端,所以在將它們部署到生產服務器時,我從來沒有必要自動化大量細節。自動化Node和Angular前端/後端集成,生產準備和部署?

我最近開始進入前端開發領域,偶然發現了一些很棒的自動化工具; Yeoman(整體工作流程),Yo(用於腳手架),Grunt(自動化)和Bower(用於依賴關係)。

我非常喜歡這些工具的工作流程,他們讓我對試圖學習前端開發,構造和工作流程感到非常興奮。然而,學習所有這些也提出了正確的方式來自動化其他領域的前後端集成工作流程的問題:

1)我應該在同一個存儲庫中維護前端和後端嗎?它們都是用JavaScript編寫的,但看起來很笨拙。我知道這是一個偏好問題,但我很想看到關於當前最佳實踐的一些想法。最好是讓我的應用程序中的公共目錄成爲另一個的sym鏈接。

2)如何將我的前端連接到我的後端?具體談論socket.io調用。我不確定自動化如何最好地設置此變量的最佳方法。在後端,我會使用process.env,但我不確定如何根據測試,生產設置將它們連接在一起。我不想每次將其部署到服務器時進行更改。

回答

1

1)我喜歡將它們放在同一個存儲庫中的想法。它讓你的生活變得如此容易。你會感到高興的一件事是,一旦你的服務器和網頁從同一個Web服務器提供服務,你不需要處理任何CORS問題。或者您不需要有一個反向代理來解決CORS問題。

2)我們使用角度js與socket.io調用。既然你使用了yeoman,你可以像這樣讀取一個配置文件到Gruntfile.js中。 grunt.file.readJSON('config.json').如果你有一個CI,你可以重用你的grunt腳本。

nodeServer : { 
    prod : { 
     port: 8080, //other params 
    } 
} 
+0

你能詳細說明我將如何使用這個配置文件w/grunt注入適當的信息到HTML或JS? – Hortinstein

+1

在你的js中,你可以使用require加載像require('config.json')一樣的config.json。這會給你你的配置對象。您可以使用process.env.ENVIRONMENT找到節點環境。確保你在你的grunt文件中設置這個環境。所以,一旦你得到你的JSON並且知道環境,就可以使用端口和其他設置。 –

+0

@Hortinstein:如果您的問題得到解決,您能否將此標記爲已回答。它會幫助別人。否則,讓我知道。 –