Gatsby 빌드가 Bootstrap bundle.min.js에서 오류를 반환합니다.

존스 스미스

내 Gatsby 앱을 빌드하려고했는데 다음 오류가 반환되었습니다.

정적 HTML 빌드 실패

이 오류에 대한 자세한 정보는 문서 페이지를 참조하십시오 : https://gatsby.dev/debug-html

 WebpackError: ReferenceError: Element is not defined

  - bootstrap.bundle.min.js:6 
    node_modules/bootstrap/dist/js/bootstrap.bundle.min.js:6:3033

  - bootstrap.bundle.min.js:6 
    node_modules/bootstrap/dist/js/bootstrap.bundle.min.js:6:68

  - bootstrap.bundle.min.js:6 
    node_modules/bootstrap/dist/js/bootstrap.bundle.min.js:6:162

  - Layout.js:1 
    src/components/Layout.js:1:1

  - 404.js:1 
    src/pages/404.js:1:1

npm을 통해 부트 스트랩을 설치하고 Layout구성 요소 에 포함했습니다 .

import React, { useEffect } from "react"
import "bootstrap/dist/js/bootstrap.bundle.min.js"
import "bootstrap/dist/css/bootstrap.min.css"
import "../assets/css/style.css"
import "../assets/css/aos.css"
import Navbar from '../components/Navbar'
import Footer from '../components/Footer'

기록을 위해 내 앱은 gatbsy 개발에서 완전히 잘 작동합니다. 또한 터미널에 다음과 같은 이상한 부트 스트랩 코드가 표시됩니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

이 문제의 원인은 확실하지 않지만 부트 스트랩이 내 앱에서 완전히 잘 작동하고 있음을 보장합니다.

이 문제를 어떻게 해결합니까?

업데이트 : WebpackError: ReferenceError: Element is not defined내 개츠비 브라우저에 ff를 추가 하여 문제 해결 합니다.

import "bootstrap/dist/css/bootstrap.min.css"
import "bootstrap/dist/js/bootstrap.bundle.min.js"

하지만 새로운 오류가 발생했습니다 (전체 로그).

Building static HTML failed for path "/blogs/react-js-why"

See our docs page for more info on this error: https://gatsby.dev/debug-html


   6 |     }
   7 |     if (isProduction) {
>  8 |         throw new Error(prefix);
     | ^
   9 |     }
  10 |     throw new Error(prefix + ": " + (message || ''));
  11 | }


  WebpackError: Invariant failed

  - tiny-invariant.esm.js:8
    node_modules/tiny-invariant/dist/tiny-invariant.esm.js:8:1

  - history.js:250
  - history.js:250
    node_modules/history/esm/history.js:250:115

  - react-router-dom.js:29
    node_modules/react-router-dom/esm/react-router-dom.js:29:41

After making some research, the results are pointing on the use of react-router-dom in Gatsby. Not sure if its the issue but I use it on my PageLinks component:

import React from "react"
import { BrowserRouter as Router, Switch } from "react-router-dom"
import { HashLink } from 'react-router-hash-link'
import Scrollspy from 'react-scrollspy'

const data = [
  {
    id: 1,
    text: "Home",
    div: "home",
    url: "#home"
  },
  {
    id: 2,
    text: "About",
    div: "about",
    url: "#about"
  },
  {
  {
    id: 3,
    text: "Blogs",
    div: "blogs",
    url: "#blogs",
  },
  {
    id: 4,
    text: "Contact",
    div: "contact",
    url: "#contact"
  },
]

let divs = data.map(x => x.div)

export default () => {
  return (
    <Router>
      <Switch>
      <Scrollspy className="navbar-nav ml-auto" items={ divs } currentClassName="active">
            {  data.map(link => {
                return (
                        <li className="nav-item" key={link.id}>
                          <HashLink smooth to={link.url} className="nav-link text-uppercase font-weight-bold">{link.text}</HashLink>
                        </li>
                    )
              })
          }
      </Scrollspy>
      </Switch>
    </Router>
  )
}
Ferran Buireu

I think that your issue comes from the Scrollspy and the mix of routing you are using there. You are using the react-router-dom while Gatsby extends from @reach/router so you don't need to handle and overkill your project with Router or Switch components, Gatsby's link (<Link>) does all the job for you.

Try ignoring the transpilation of the react-scrollspy dependency in your gatsby-node.js by calling onCreateWebpackConfig API and adding a null loader.

exports.onCreateWebpackConfig = ({ stage, loaders, actions }) => {
  if (stage === "build-html") {
    actions.setWebpackConfig({
      module: {
        rules: [
          {
            test: /react-scrollspy/,
            use: loaders.null(),
          },
        ],
      },
    })
  }
}

gatsby develop요약하자면 코드 컴파일을 처리하는 브라우저 (분명히 window다른 전역 개체 가있는 곳 )를 처리하고 자연스럽게 react-scrollspy해당 창 개체를 사용하여 작업을 수행하기 때문에 프로젝트가 개발 중입니다 ( ) . 그러나 빌드 window또는 다른 전역 개체 가없는 서버 측 (노드)에서 발생 하므로 코드가 중단됩니다. 이 사용자 정의를 사용하면 기본적으로 서버 측에서 문제가되는 모듈의 트랜스 파일을 방지하고 null로더 를 추가하여 코드가 깨지는 것을 방지 할 수 있습니다 .

코드를 손상시킬 수있는 다른 가능한 이유는 라우팅의 혼합입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Netlify Gatsby 빌드 오류, 빌드가 로컬에서 작동 함

분류에서Dev

Gatsby Netlify 빌드 오류 : '/ opt / build / repo / src / templates'에서 '../components/GridTemplate/GridTemplate.js'를 해결할 수 없습니다.

분류에서Dev

Express 정적 서버는 webpack에서 반응 빌드를 위해 bundle.js에 대해 html을 반환합니다.

분류에서Dev

Gatsby 빌드에서 문서를 사용할 수 없습니다. 후크로 변환해야합니다.

분류에서Dev

JavaScript toLowerCase () 메서드가 내 반응 앱에서 오류를 반환합니다.

분류에서Dev

빌드 "쿼리가 너무 오래 걸립니다"에 대한 Gatsby 경고

분류에서Dev

QUnit은 엄격 모드에서 오류를 반환합니다.

분류에서Dev

명령 줄에서 read ()가 EISDIR 오류를 반환합니다.

분류에서Dev

Netlify가 jQuery에 대한 Gatsby JS에서 오류를 던짐

분류에서Dev

@ typeform / embed가 Gatsby Netlify 빌드를 중단합니다.

분류에서Dev

gatsby.js에 mapbox-gl-geocoder를 추가 할 때 gatsby 빌드가 실패 함

분류에서Dev

스레드가 WIC에서 오류 (때때로)를 반환합니다.

분류에서Dev

Nuxt.js의 Apollo asyncData가 오류를 반환합니다.

분류에서Dev

Android Gradle 빌드 스크립트가 preDexDebug에서 오류 137을 반환합니다.

분류에서Dev

git checkout master가 mybranch에서 전환 할 때 오류를 반환합니다.

분류에서Dev

Laravel 라우터가 오류 500 내부 서버 오류를 반환합니다.

분류에서Dev

노드 app.js가 오류를 반환합니다 : connect ECONNREFUSED 127.0.0.1:27017

분류에서Dev

laravel 유효성 검사 메서드가 오류를 반환합니다.

분류에서Dev

Laravel 5.3 : Ajax를 사용하는 POST 요청은 항상 jquery.min.js에 의해 콘솔에서 오류 404를 반환합니다.

분류에서Dev

메서드에서 유형 오류의 결과를 반환합니다.

분류에서Dev

GraphQL은 Gatsby 사이트에서 첫 번째 노드 만 반환합니다.

분류에서Dev

SecItemCopyMatching은 릴리스 빌드에서 errSecItemNotFound를 반환합니다.

분류에서Dev

Powershell-Sharepoint 자동 파일 업로드가 "원격 서버에서 오류를 반환했습니다 : (403) 금지됨"을 반환합니다. " 오류

분류에서Dev

document.getElementById에 의해 문서에 대한 JS 참조가 오류를 반환합니다.

분류에서Dev

Eclipse에서 사용하려고 할 때 Proguard가 오류를 반환합니다.

분류에서Dev

Android에서 svmlib의 svm_train 함수가 오류를 반환합니다.

분류에서Dev

Python에 오류가 있습니다. 28 <10은 true를 반환합니다.

분류에서Dev

eBay Trading API가 'ISBN에 값이 없습니다'오류를 반환합니다.

분류에서Dev

Gatsby 빌드에서 SVG 오류 문제 해결

Related 관련 기사

  1. 1

    Netlify Gatsby 빌드 오류, 빌드가 로컬에서 작동 함

  2. 2

    Gatsby Netlify 빌드 오류 : '/ opt / build / repo / src / templates'에서 '../components/GridTemplate/GridTemplate.js'를 해결할 수 없습니다.

  3. 3

    Express 정적 서버는 webpack에서 반응 빌드를 위해 bundle.js에 대해 html을 반환합니다.

  4. 4

    Gatsby 빌드에서 문서를 사용할 수 없습니다. 후크로 변환해야합니다.

  5. 5

    JavaScript toLowerCase () 메서드가 내 반응 앱에서 오류를 반환합니다.

  6. 6

    빌드 "쿼리가 너무 오래 걸립니다"에 대한 Gatsby 경고

  7. 7

    QUnit은 엄격 모드에서 오류를 반환합니다.

  8. 8

    명령 줄에서 read ()가 EISDIR 오류를 반환합니다.

  9. 9

    Netlify가 jQuery에 대한 Gatsby JS에서 오류를 던짐

  10. 10

    @ typeform / embed가 Gatsby Netlify 빌드를 중단합니다.

  11. 11

    gatsby.js에 mapbox-gl-geocoder를 추가 할 때 gatsby 빌드가 실패 함

  12. 12

    스레드가 WIC에서 오류 (때때로)를 반환합니다.

  13. 13

    Nuxt.js의 Apollo asyncData가 오류를 반환합니다.

  14. 14

    Android Gradle 빌드 스크립트가 preDexDebug에서 오류 137을 반환합니다.

  15. 15

    git checkout master가 mybranch에서 전환 할 때 오류를 반환합니다.

  16. 16

    Laravel 라우터가 오류 500 내부 서버 오류를 반환합니다.

  17. 17

    노드 app.js가 오류를 반환합니다 : connect ECONNREFUSED 127.0.0.1:27017

  18. 18

    laravel 유효성 검사 메서드가 오류를 반환합니다.

  19. 19

    Laravel 5.3 : Ajax를 사용하는 POST 요청은 항상 jquery.min.js에 의해 콘솔에서 오류 404를 반환합니다.

  20. 20

    메서드에서 유형 오류의 결과를 반환합니다.

  21. 21

    GraphQL은 Gatsby 사이트에서 첫 번째 노드 만 반환합니다.

  22. 22

    SecItemCopyMatching은 릴리스 빌드에서 errSecItemNotFound를 반환합니다.

  23. 23

    Powershell-Sharepoint 자동 파일 업로드가 "원격 서버에서 오류를 반환했습니다 : (403) 금지됨"을 반환합니다. " 오류

  24. 24

    document.getElementById에 의해 문서에 대한 JS 참조가 오류를 반환합니다.

  25. 25

    Eclipse에서 사용하려고 할 때 Proguard가 오류를 반환합니다.

  26. 26

    Android에서 svmlib의 svm_train 함수가 오류를 반환합니다.

  27. 27

    Python에 오류가 있습니다. 28 <10은 true를 반환합니다.

  28. 28

    eBay Trading API가 'ISBN에 값이 없습니다'오류를 반환합니다.

  29. 29

    Gatsby 빌드에서 SVG 오류 문제 해결

뜨겁다태그

보관