是否有一个工具,在那里扫描我的Javascript代码的功能可能不会出现在所有的浏览器?
我的图书馆是完全非UI,所以我不关心的东西是如何“显示”。 我正在寻找的是类似从Mozilla的JavaScript的MDN。 例如,对于Array.prototype.indexOf,他们警告说,这是一个最近的ECMAScript添加,这是并非所有的浏览器(和通常提供一个stub)。 我正在寻找的是一个工具,它会列出我的代码,将属于这一类的功能。
是否有一个工具,在那里扫描我的Javascript代码的功能可能不会出现在所有的浏览器?
我的图书馆是完全非UI,所以我不关心的东西是如何“显示”。 我正在寻找的是类似从Mozilla的JavaScript的MDN。 例如,对于Array.prototype.indexOf,他们警告说,这是一个最近的ECMAScript添加,这是并非所有的浏览器(和通常提供一个stub)。 我正在寻找的是一个工具,它会列出我的代码,将属于这一类的功能。
您可以使用eslint-插件-compat的 ,一个插件为ESlint掉毛效用。 你甚至可以使用Browserlist配置要支持的浏览器。
安装非常方便。 你必须安装eslint和这个插件:
npm install --save-dev eslint-plugin-compat
要么
yarn add --dev eslint eslint-plugin-compat
并添加ESlint配置文件:
// .eslintrc
{
"extends": ["plugin:compat/recommended"]
}
支持的浏览器添加到您package.json
文件:
// sample configuration (package.json)
{
// ...
"browserslist": ["last 2 Chrome versions", "IE 11"],
}
然后运行棉短绒:
eslint yourfile.js
在我的情况,这是输出:
92:9 error Promise.all() is not supported in IE 11 compat/compat
94:9 error Promise.all() is not supported in IE 11 compat/compat
更新:
看一看在从斯蒂芬Vierkant的答案 ,显示了插件来解决这个问题。
有没有这样的工具,而且有很多浏览器 。
我认为这是对你的扫描兼容性代码为“所有”的浏览器,虽然这确实是一个有用的东西的替代方法。 大多数人做以下两件事情,以确保一定程度的跨浏览器的兼容性。
使用库
你可以使用像一个图书馆underscore.js , jQuery的 , 道场 , Modernizr的 ,等等那套浏览器不兼容为您服务。 所以,你可以使用例如jQuery.inArray,这将在工作jQuery的与你使用一个通用的接口涵盖了所有的浏览器。
限制浏览器支持
决定你想要与你的应用程序支持哪些浏览器,这个状态在您的网站,然后在这些浏览器的测试。 要么本身,如果你有,或使用类似browserstack做测试的浏览器你没有。 这个答案还列出了这个更多的选择。
而在最后,有依靠在编写代码时的最佳实践和切身体会。
更新:
是好还是坏,检查者不再可用。
搜索同样的问题(这几年后),我撞到了 JavaScript的兼容性检查 。
它给了我在我的剧本似乎如何兼容,与主流浏览器的提示。