我有一个我在nuext .js上创建的web应用程序,但我注意到在一些浏览器(如Safari, IE)中存在编译错误,我认为这是Babel配置的错误,然后我运行npm run build
ES6未编译,并且我在控制台上有错误对于交叉浏览测试,我使用的是Browserstack我在控制台中有以下错误:
Unexpected token '...'. Expected a property name
SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode.
如何配置Babel来编译ES6?
显然,您的代码不能在Safari v10及以下版本上工作。看看这里的一些统计数据:
- https://gs.statcounter.com/browser-version-partially-combined-market-share月- 202007 - 202107
- https://www.w3schools.com/browsers/browsers_safari.asp
- https://caniuse.com/?search=flex
- https://en.wikipedia.org/wiki/Safari_version_history Safari_10_2
看起来Safari与少数版本一起使用,但这些版本主要是v13和v14。那些比你不支持的要现代得多。
Safari v10实际上是从2007年开始的,所以我可以肯定地说,你可以完全抛弃这个版本。
即使Safari不是一个常青树的浏览器(意思是updating-itself
像Firefox或Chrome),人们仍然使用它不是一个旧的版本。
你需要记住,如果你想支持一个老版本,你将严重影响整个网站对每个用户的整体性能。好吧,0.5%的人会有更好的体验(那些停留在2007年的人),但其他人将需要承担旧的巴别塔翻译版本的重量。
你可以做两个bundle(一个是现代的,另一个是老旧的浏览器),并根据它们是否支持ES模块来提供其中一个或另一个。我找不到Google/HTTP 203讨论这个。
但在我看来,对于一个超级小的人口来说,这是很多工作(不是那么微不足道),我宁愿忽略这一点,专注于更重要的事情来处理。
就连a11y也在惠及更多的人。即便如此,它的优先级也可能低于Safari v10。
这是我的行李。如果我找到视频,我可能会更新我的答案。