После нескольких часов разочарования я наконец наткнулся на обсуждение на GitHub, которое решило это для меня.В Гэтсби есть вещь, называемая статическая папка , для которой один вариант использования включает в себя небольшой скрипт за пределами связанного кода.
Кто-нибудь еще в той же ситуации, попробуйте выполнить следующие действия:
Создайте папку static
в корне вашего проекта.
Поместите свой скрипт script.js
в папку static
.
Включите сценарий в свой реактивный дом с реактивным шлемом .
Так же и в случае с кодомЯ отправил в своем исходном вопросе, например:
import React from "react"
import Helmet from "react-helmet"
import { withPrefix, Link } from "gatsby"
import Layout from "../components/layout"
import Image from "../components/image"
import SEO from "../components/seo"
const IndexPage = () => (
<Layout>
<Helmet>
<script src={withPrefix('script.js')} type="text/javascript" />
</Helmet>
<SEO title="Home" keywords={[`gatsby`, `application`, `react`]} />
<h1>Hi people</h1>
<p>Welcome to your new Gatsby site.</p>
<p>Now go build something great.</p>
<div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}>
<Image />
</div>
<Link to="/page-2/">Go to page 2</Link>
</Layout>
)
Обратите внимание на импорт
import Helmet from "react-helmet"
import { withPrefix, Link } from "gatsby"
и элемент скрипта.
<Helmet>
<script src={withPrefix('script.js')} type="text/javascript" />
</Helmet>
Это сэкономило бы часымоего времени, надеюсь, это делает это для кого-то еще.