2017-09-02 61 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