2017-08-07 64 views
2

我有nodejs項目與反應前端部分,我想使用巴貝爾後端服務器(有導入/導出,和一些額外的功能,如'裝飾',對象 - 休息傳播等)不同的babel預設爲後端和前端,但爲相同env

此外,我想使用巴貝爾反應前端項目,但與不同的預置/插件集。 在後端我有最新的(8.2)nodejs,所以它已經知道類,異步/等待等不應該被轉發。 但在前端,我針對IE11,所以我必須啓用大量的插件。 因此,如果我有單一的.babelrc配置前端和後端我越來越transpiled後端代碼。

我知道有一個'env'選項爲babel配置,但在描述的情況下,我有相同的'env'。 現在我結束了兩個配置: 一個在package.json中,另一個在webpack.config(babel-loader選項)中。 但是我不喜歡結果,因爲它可能會混淆新的開發者。 他可以在package.json裏面找到babel配置,並認爲這是唯一的配置,試圖添加/修改某些東西,並努力爲什麼它不影響前端部分。

也有一些問題,這樣的設置:

玩笑不能讀取webpack.config巴貝爾設置,所以我必須定義額外的「ENV」:在.babelrc「測試」只是開玩笑。 這導致在測試過程中不必要的傳輸後端。

回答

0

這就是我在項目中解決問題的方式。這是最好保持兩個分開,並且可能會明確指出您在給定的上下文中使用哪一個。您的目標是兩個完全不同的環境,並且有兩個不同的配置文件是有意義的。在你從同一個代碼庫構建webview版本的地方,你也可以有一個單獨的配置。對於每個「環境」你都會這樣。

這可能會對新開發者造成問題,但我認爲擁有if (is_in_client_mode) ? 'one_config_value' : 'another_config_value'的傳播方式同樣糟糕,沒有兩個文件的好處。

+0

擁有兩種不同的配置肯定是一種解決方案。但如何處理笑話,它無法使用自定義babel配置? –

相關問題