2016-02-04 182 views
6

將TypeScript中編寫的NodeJS服務器部署到生產環境的最佳實踐是什麼?部署Typescript NodeJS服務器

我想避免在我的git存儲庫中爲每個腳本創建3個文件(ts,js,map)。

我可以使用grunt/gulp來創建「dist」目錄並將所有已編譯的文件複製到那裏,但是我會將它們放入我的回購中。我可以爲編譯後的代碼創建單獨的回購,但這並不理想,我認爲。

此外,當我運行node app.ts沒有js或地圖存在時,它實際上啓動一切正常。那麼編譯的文件甚至需要節點服務器嗎?

注意:我沒有任何編譯腳本/任務,我的IDE正在爲我自動編譯ts文件。

回答

6

您可以使用打字稿做這一切爲你

tsconfig.json

{ 
    ... 
    "outDir": "dist", 
    "sourceMap": false, 
    "declaration": false 
} 
  • outDir將文件編譯成dist目錄
  • sourceMap將決定是否輸出.map檔案
  • declaration將確定輸出.d.ts文件

更多選項是否能找到here和使用tsconfig.json文件的信息,可以發現here

+0

但是這仍然需要手動工序難道不?我正在尋找的是推* .ts回購,然後自動將其拉到服務器上,而無需我登錄,甚至更好,而不依賴於服務器上的編譯過程。如果那樣會失敗,那將會很麻煩 – Tom

+0

編譯在某些時候是必要的。使用配置項編譯配置文件並將其部署到成功的服務器上很常見。另一種方法是使用類似'npm'的東西來只發布已編譯的文件,然後觸發一個部署到從npm庫中取出的服務器上。沒有什麼神奇的方式來做你正在問的問題,你需要設置一個基礎設施路徑來處理這個問題。有很多關於這方面的指南和教程,你可以在網上找到,並且不需要特別針對TypeScript,因爲在編譯之後,只需JavaScript就可以了。 – SnareChops

+0

對,所以答案是預編譯開發機器上的代碼並推送它相同的回購或單獨回購只爲編譯的代碼。現在爲什麼那個節點app.ts沒有運行js文件? – Tom