我正在使用默认的polyfill选项,尽管Gatsby在我的网站上无法正确为iPhone 5 / 5S和其他一些较旧的浏览器进行polyfilling(尽管在IE11上似乎可以正常工作)。

ReferenceError: Can't find variable: Set

不知道我应该在polyfill周围设置什么工作,或者不确定Gatsby为何不进行polyfilling在所有设备上正确设置。

我尝试了gatsby-plugin-polyfill-io插件,它似乎使错误Uncaught TypeError: Cannot read property 'split' of undefined变得更糟。

有什么想法或建议吗?

最佳答案

您应该在gatsby-browser.js上添加polyfill
例如:

export const onClientEntry = async () => {
  if (typeof IntersectionObserver === 'undefined') {
    await import('intersection-observer');
    console.log('👍 intersection-observer imported')
  }
}


或gatsby-ssr.js

export const onRenderBody =({ setPostBodyComponents }, options) =>{
    setPostBodyComponents([
        <script
            src="https://cdn.polyfill.io/v3/polyfill.min.js"
        />
    ])
}

关于javascript - Gatsby中的灌装套件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53137201/

10-12 03:30