Gatsby Styled Components 插件:未定义窗口

Posted

技术标签:

【中文标题】Gatsby Styled Components 插件:未定义窗口【英文标题】:Gatsby Styled Components plugin: window is not defined 【发布时间】:2021-06-27 04:00:38 【问题描述】:

我的 Gatsby with Sanity 应用程序在运行 npm run build 时收到以下错误:

 WebpackError: ReferenceError: window is not defined (from plugin: gatsby-plugi
  n-styled-components)

似乎是外部包gatsby-plugin-styled-components 在某处使用window。我尝试用此处描述的虚拟模块替换https://www.gatsbyjs.com/docs/debugging-html-builds/#fixing-third-party-modules,但我的样式组件不起作用,所以它不是解决方案.

也许我在不支持的地方使用了样式化组件技术?我查看了不同的 gatsby/styled components 示例 repo,但找不到区别。

你可以在这里找到回购:https://github.com/sanderdebr/sanity-gatsby-portfolio

【问题讨论】:

【参考方案1】:

这是因为您的项目或 gatsby-plugin-styled-components 在某处使用 styled-components@5.2.2,这是使用 window 的损坏版本。

该问题已在 SC Github 上跟踪:https://github.com/styled-components/styled-components/issues/3444

我建议你更新到 styled-components@5.2.3

【讨论】:

以上是关于Gatsby Styled Components 插件:未定义窗口的主要内容,如果未能解决你的问题,请参考以下文章

标题组件根据 React / Gatsby / Styled-components 中的背景更改文本颜色

Gatsby Styled Components , CSS 显示在 <head>

使用 styled-components 在组件/元素之间共享样式

在 GatsbyJS 中使用 styled-components 设置自定义组件的样式

GatsbyJS 在初始加载后未加载谷歌字体

将自定义类/样式传递给 Gatsby (React) 中的样式化组件