2017-09-02 98 views
0

我寫一個聚合物2應用程序。默認是transpile ES6到ES5,這樣就可以使用ES6語法,並確保它只是工作。Transpiling or not transpiling聚合物2申請?

與此問題是,大家(甚至支持瀏覽器)得到接收傳輸代碼。

兩個問題:

  • 難道只是太瘋狂了說「不」,以傳統的瀏覽器,而只是停止transpiling?

  • 有一個簡單的上下的方式,特定的瀏覽器重定向到應用程序的非transpiled版本?

回答

0

簡單的答案是L使用prpl-server-node這正是我正在談論,以及更多。 具體做法是:


差分服務

現代瀏覽器都提供提高性能強大的功能,但大多數應用程序需要支持舊的瀏覽器了。 PRPL服務器可以通過檢測使用用戶代理頭的瀏覽器功能,滿足不同版本的應用程序,以不同的瀏覽器。

構建

PRPL服務器理解構建的概念,一組特定的瀏覽器功能,優化您的應用程序的變體。

0

這真的取決於您要創建的應用程序的觀衆。至於我自己的項目,我可以在我的谷歌Analytics(分析)看到,仍然有一些人誰是通過Safari 8,9甚至11 IE訪問它,我不能告訴他們使用的,因爲以下幾個原因,不同的瀏覽器...主要是財務原因(個人或企業)

因此,它仍然是一個默認的我只是轉回到ES5(鑑於我現在正在使用Webpack等待腳本類型=「模塊」穩定)。

至於最簡單的方法,他們說,如果你使用聚合物CLI的服務功能,它依賴於瀏覽器的功能autotranspiles你的代碼。

或者你可以有一個簡單的JavaScript代碼,試圖檢查ES6方法,然後如果它的工作,它加載ES6版本的捆綁代碼...如果沒有,它加載ES5版本的捆綁代碼+ custom-elements-es5-adapter。但這個需要一些性能打擊,因爲等待解析最初的JS腳本來加載必要的文件之前檢查,而不是立即加載它們(我還沒有測試過這個雖然)

或者你可以檢查服務器什麼類型的瀏覽器正在調用,然後試探性地猜測你想發送什麼類型的版本代碼。

至於性能的轉移代碼的開銷,這是有點微不足道,因爲如果你只是使用Polymer.Element,你可以得到至少12KB的代碼...那麼你會有30+ KB留下來顯示內容,這是綽綽有餘的PRPL + 50