2016-04-28 59 views
0

設置節點/巴別:從巴別節點或開關巴貝爾寄存器加入Babel-CLI生產

巴貝爾6(^ 6.0.0), 節點5.4.0, 快遞4.13.x,

babel-nodebabel-register都有警告,不要在 babel.io網站的生產中使用。基本上像這樣在飛行中飛行對於生產而言太慢。

所以我設置了babel-cli並運行預先編譯好的代碼。

問題:

在開發過程中,它的速度太慢重新transpile所有的代碼,並重新啓動該程序 每一個變化。由於我們現在正在運行傳輸代碼而不是源(發生更改),我也無法看到如何將自動重新加載設置爲更改監視器(例如nodemon)。

問:

我們如何建立一個簡單的方法,爲生產發展過程中即時transpiling和預transpiling之間切換?

我看到的大多數例子都是babel-nodebabel-register用於開發和生產,所以我不確定用babel進行快速開發的好策略,同時也爲生產運輸準備了代碼庫。

+0

「在開發過程中,它的速度太慢了」你是怎麼說的?您可以設置一個觀察器來重新編譯更改的個別文件,這幾乎是即時的。你的'nodemon'仍然會以相同的方式運行,它只是在看構建輸出,而不是原始的源文件。 – loganfsmyth

+0

好吧,這只是它 - 我不知道如何觀看src代碼進行更改,transpile(只有更改爲快速),並將這些更改與構建代碼合併。我想這個過程需要發生,然後才能看到構建的自動重新加載,但我甚至很高興只是讓構建代碼隨時準備好在進行更改時手動重新啓動,而不必等待完整的轉換src代碼才能重新啓動。 –

+0

@loganfsmyth實際上試圖跳過所有src代碼的長時間轉換,這就是爲什麼我認爲在開發過程中進行dev開發和生產前轉換之間的切換可能是解決方案,並圍繞這一假設塑造了我的問題。如果只有更快的方法才能轉化,請告訴我。 –

回答

3

注意到Github上的很多非常受歡迎的Node樣板庫仍然使用babel-nodebabel-register作爲生產代碼,這可能是因爲不久以前,它們更容易用於設置快速重新加載開發環境。 但是,它使用babel-cli簡單易用,我推薦將它用於開發和生產代碼。

與評論的幫助下,我得到了我的核心問題:

「?開發時,我怎麼能避免我的源代碼緩慢重建使用babel-cli時」

不像上即時transpling是babel-nodebabel-register的報價,這是快轉變發展方式過程中重新啓動後,babel-cli預transpiles你的代碼到你的代碼然後可以分別在它的ES5運行構建目的地格式。在開發過程中,每次更改之間從源代碼構建代碼的速度都很慢,因爲在重新啓動服務器之前必須等待每個文件都要進行轉發。 - 所有你需要

解決方法很簡單就是巴別塔,CLI的watch法外的開箱可以看你的所有的源代碼,並迅速通過僅重建已更新的同時觀看文件更新您的構建代碼。

對不起,如果你閱讀這個解決方案時顯得非常明顯,但是babel文檔只顯示代碼監視單個文件,目前Github上有大量流行的庫專門用於監視整個文件夾的變化,所以我假設開箱即用的解決方案有點新,並且使得babel-cli明顯優於babel-nodebabel-register

所以,你所要做的就是使用NPM腳本,像這樣:

"watch-files" : "babel src --watch --out-dir build" 

,每當某一更新重新啓動服務器生成目錄(除非你設置了一個自動重新加載手錶建立文件夾)。

感謝@FelixKling和@ aray12的評論,這幫助我看到babel-cli即使在開發過程中也很容易使用。