Вы можете предотвратить код jQuery на стороне Gatsby, добавив собственный html.js
.
https://www.gatsbyjs.org/docs/custom-html/
В файле html.js
вы можете import jQuery или Bootstrap вот так.
// html.js
import React from 'react'
import PropTypes from 'prop-types'
export default class HTML extends React.Component {
render() {
return (
<html {...this.props.htmlAttributes}>
<head>
<meta charSet="utf-8" />
<meta httpEquiv="x-ua-compatible" content="ie=edge" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
{/* Bootstrap */}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossOrigin="anonymous" />
{/* Root Styles */}
<link rel="stylesheet" href="/styles/app.css" />
<link rel="stylesheet" href="/styles/typography.css" />
{/* 3rd-party plugin Styles */}
<link rel="stylesheet" href="/styles/plugins/slick.min.css" />
<link rel="stylesheet" href="/styles/plugins/slick-theme.min.css" />
{/* jQuery */}
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
{this.props.headComponents}
</head>
<body {...this.props.bodyAttributes}>
{this.props.preBodyComponents}
<div
key="body"
id="___gatsby"
dangerouslySetInnerHTML={{ __html: this.props.body }}
/>
{this.props.postBodyComponents}
</body>
</html>
)
}
}
HTML.propTypes = {
htmlAttributes: PropTypes.object,
headComponents: PropTypes.array,
bodyAttributes: PropTypes.object,
preBodyComponents: PropTypes.array,
body: PropTypes.string,
postBodyComponents: PropTypes.array,
}
И вы можете импортировать свои jQuery функции в свой компонент.