My Gatsby site can't be deployed to Netlify because of a WebpackError: ReferenceError: window is not defined
I've tried:
- Wrapping return statements in
if(window !== undefined)
checks which didn't work - Putting a require statement in my index.js:
if (typeof window !== 'undefined') { require('scrollmagic') require('scrollmagic-plugin-gsap') }
which didn't work
I noticed that the import statement import Scrollmagic from 'scrollmagic'
already causes the error because I once tried deploying the site without any scrollmagic code except for the import.
The scrollmagic part of my component looks like this (I deleted some irrelevant variable assignments in this example):
import React, { useRef, useEffect } from 'react'
import ScrollMagic from "scrollmagic"
import { TweenMax, TimelineMax, Power3, TweenLite, TimelineLite } from "gsap"
import { ScrollMagicPluginGsap } from "scrollmagic-plugin-gsap";
const Techstack = () => {
ScrollMagicPluginGsap(ScrollMagic, TweenMax, TimelineMax);
const techs = useRef()
const trigger = useRef()
useEffect(() => {
let controller = new ScrollMagic.Controller()
const techitems = techs.current.children
const tl = new TimelineMax
for (let i = 0; i < techitems.length; i++) {
new ScrollMagic.Scene({
triggerElement: techitems[i],
})
.setTween(TweenLite.from(techitems[i], 1, { opacity: 0, x: -300, ease: Power3.easeOut }))
.addTo(controller)
}
}, [])
return (
<TechstackContainer ref={trigger} id="trigger">
<ContentWrapper ref={techs}>
<StyledTechstackText>
Ich baue Webseiten und Apps, am liebsten mit:
</StyledTechstackText>
{stack.map(el => {
return <TechItem>{el}</TechItem>
})}
</ContentWrapper>
</TechstackContainer>
)
}
How would I go about it?