我配置了我的"聚合物构建" (v 2.0)仅为IE 11转换ES5版本,但现在我只需要为IE 11用户提供该版本,为所有其他浏览器提供ES6版本。实现这一目标的最佳方法是什么?
理想情况下,我想在任何客户端页面中使用我的自定义元素只使用一次导入,并在服务器上使用某些逻辑来显示相应的版本,但作为网络组件的新手,我不会&#39如果有正确的方法,那么我想要自己解决这个问题(这可能会很糟糕)#34;这样做(到目前为止我还没有找到它,但我一直在寻找)。
感谢。
答案 0 :(得分:1)
您应该使用能够检测浏览器功能的网络服务器。
Polymer Team本身已经发布了一个nodeJS库,它读取你的<h2>Example of sending data using POST</h2>
Name :
<input type="text" id="name"><br/>
Student number:
<input type="text" id="snumber"><br/><br/>
<input type="button" value="submit" onclick="test();">
文件并查看你的builds目录,并根据客户端浏览器支持的功能提供正确的版本。服务器本身也支持H2 Push,这是一个不错的功能。
https://github.com/Polymer/prpl-server-node
这是polymer.json
中的构建配置。它为每个功能生成不同的构建。我交叉检查,哪些版本的浏览器支持这些技术,并为每个neccecary组合添加了构建。
polymer.json
一个简单的快速服务器,利用prpl-server库进行差异服务(记住,这是ES6语法):
"builds": [{
"name": "none",
"browserCapabilities": [],
"addServiceWorker": true,
"bundle": true,
"swPrecacheConfig": "sw-precache-config.js",
"insertPrefetchLinks": true,
"js": {
"minify": true,
"compile": true
},
"css": {"minify": true},
"html": {"minify": true}
},
{
"name": "noes6",
"browserCapabilities": ["push", "serviceworker"],
"addServiceWorker": true,
"addPushManifest": true,
"swPrecacheConfig": "sw-precache-config.js",
"insertPrefetchLinks": true,
"js": {
"minify": true,
"compile": true
},
"css": {"minify": true},
"html": {"minify": true}
},
{
"name": "nopush",
"browserCapabilities": ["es2015", "serviceworker"],
"addServiceWorker": true,
"swPrecacheConfig": "sw-precache-config.js",
"insertPrefetchLinks": true,
"bundle": true,
"js": {"minify": true},
"css": {"minify": true},
"html": {"minify": true}
},
{
"name": "all",
"browserCapabilities": ["es2015", "push", "serviceworker"],
"addServiceWorker": true,
"addPushManifest": true,
"swPrecacheConfig": "sw-precache-config.js",
"js": {"minify": true},
"css": {"minify": true},
"html": {"minify": true}
}]