在某些浏览器上,严格模式下不支持 Const 声明



当我在iOS iPhone 6模拟器(或物理iPad2(中运行我的应用程序时,我收到此错误:

SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode.
=> reactBoilerplateDeps.dll.js:4088 

这导致了jss包含的is-in-browser模块:

export const isBrowser = typeof window === "object"
&& typeof document === 'object'
&& document.nodeType === 9;
export default isBrowser;

我正在使用这些软件包:

  • 材料-ui@v1.0.0-β.1
  • 反应-boilerplate@v3.4.0

我该如何纠正?也许根据这个问题transform-es2015-block-scoping插件?

该应用程序在我的物理iPhone 6和桌面浏览器上运行良好,但在我的iPad2上无法正常工作。

根据我可以使用吗,这在 [iOS] Safari 10 中得到了修复,因此您也许可以告诉遇到此问题的人他们的浏览器不受支持,他们应该更新它,但这真的不是一个好的解决方案。

另外,请注意,当 twig.js 遇到此问题时,他们的解决方法是使用var关键字而不是const进行声明,所以也许您应该向is-in-browser提交错误报告。

尝试查看使用var关键字而不是const是否适合您也是一个好主意,方法是编辑您找到export const isBrowser ...的文件以将const替换为var.如果您决定提交错误报告,此信息将有所帮助,如果它确实有效,您可以使用您的修复程序创建其存储库的分支,并提交拉取请求。

看起来is-in-browser不是使用正确的 babel 设置构建的。您可以尝试转到node_modules/is-in-browser并运行npm run build来重建它。

最新更新