부트 스트랩 4의 popper.js가 SyntaxError 예기치 않은 토큰 내보내기를 제공합니다.


100

나는 부트 스트랩 4 설치를 시도하고 다음 링크를 포함했습니다.

<script src="libs/jquery/dist/jquery.min.js"></script>
<script src="libs/tether/dist/js/tether.min.js" ></script>
<script src="libs/popper.js/dist/popper.js"></script>
<script src="libs/bootstrap/dist/js/bootstrap.min.js" ></script>

그러나 다음과 같은 오류가 발생합니다.

발견되지 않은 구문 오류 : 예기치 않은 토큰 내보내기

여기에 이미지 설명 입력

그것을 고치는 방법에 대한 아이디어가 있습니까?


나는 부트 스트랩 파일을 필요 몰라
— Павел Шиляев

아니, 난이 사용되는 부트 스트랩을 가지고 있지만 그것은 나에게 묻지도 않고
— 인 Ashish SAH

1
마지막 버전 질문
— Павел Шиляев에게

그렇다면 CDN 링크를 사용한다고 말할 것입니다
— Ashish sah

proble은 내가 CDN 링크를 사용하기로 아니에요 때 시장에 uploud
— Павел Шиляев

답변:


35

같은 CDN 네트워크에서 popper.js를 사용하면 같은 문제가 발생했습니다 cdnjs.

Bootstrap 4예를 들어 Navbar 와 같은 예제 의 소스 코드를 관찰하면 다음 popper.min.js에서로드 된 것을 볼 수 있습니다 .

<script src="https://getbootstrap.com/docs/4.1/assets/js/vendor/popper.min.js"></script>

내 프로젝트에 포함 시켰고 오류가 사라졌습니다. 다음에서 소스 코드를 다운로드 할 수 있습니다.

https://getbootstrap.com/docs/4.1/assets/js/vendor/popper.min.js

프로젝트에 로컬 파일로 포함하면 작동합니다.


예. 당신이 옳습니다. 해당 코드를 복사하여 붙여 넣으면 오류가 사라집니다. CDN은 특정 버전을 지정하지 않습니다.popper.js
— Fabrizio Bertoglio 2017

2
작동하지만 BootStrap 팀이 자체 코드를 업데이트하기 전까지는 이것이 적절한 방법이 아니라고 생각합니다.
— Nadeem Jamali

8
위의 URL은 찾을 수 없음 오류 (404)를 반환합니다. Bootstrap 4.1.3에 getbootstrap.com/docs/4.1/assets/js/vendor/popper.min.js 를 사용 했으며 이로 인해 문제가 해결되었습니다.
— Mike Strother

1
이 답변에서 제안한 기술을 사용하는 것은 움직이는 표적을 쫓는 것과 같습니다. 정답은 Marc와 Zim이 제공합니다.
— nagu

불행히도 이것은 더 이상 작동하지 않습니다. 이 오류는 사라지고 있지만, 툴팁 기본 HTML 툴팁입니다
— deanwilliammills

248

이것도 가지고 왜 실제로 발생하는지 알아 냈습니다. 다른 사람이 여기에 도착하는 경우 :

readme.md "사용법"을 확인하십시오. lib는 세 가지 다른 모듈 로더에 대해 세 가지 버전으로 제공됩니다. 간단히 말해서 <script>태그로 로드하는 경우 UMD 버전을 사용해야합니다 . 에서 찾을 수 있습니다 /dist/umd. 기본값 ( /dist)은 태그를 사용하여로드 할 수없는 ESNext (ECMA-Script)입니다 script.


5
감사합니다. umd 파일로 변경하여 오류를 제거했습니다.
— user1500321

4
UMD 폴더 아래에있는 파일에 대한 참조를 변경하면 내 문제 해결
— Vimalan 자야 가네

16
이것은 받아 들여진 대답이어야합니다. 대박. 공유해 주셔서 감사합니다.
— Ajay Kumar

3
위의 내용에 따르면 이것이 진정한 대답입니다.
— Ron

1
빠른 도움을 주셔서 감사합니다. 이 / umd 및 / esm 폴더가 무엇인지 궁금했지만 Google은 좋은 결과를 제공하지 않습니다.
— Blackbam

89

Bootstrap 4에는의 UMD 버전이 필요하며 popper.js순서가 다음과 같은지 확인합니다.

<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="~/Scripts/jquery-3.0.0.min.js"></script>
<script src="~/Scripts/umd/popper.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>

UMD 버전은 오류를 제거한 유일한 CDN 링크입니다.
— nyusternie

고마워 친구! 주문으로 문제가 해결되었습니다. 건배!
— Noobie

17

bootstrap.bundle.min.js를 추가하고 html에서 popper.js를 제거 할 수도 있습니다.

번들로 제공되는 JS 파일 ( bootstrap.bundle.js및 축소 된 bootstrap.bundle.min.js) 에는 [Popper] ( https://popper.js.org/ )가 포함되지만 jQuery는 포함 되지 않습니다 .


2
bootstrap.bundle.min.js포함popperjs
— vuhung3990

추가 Popper.js 라이브러리를 전혀 사용할 필요가 없기 때문에 최고의 답변
— BuddyZ

10

README의 96 행

거리 타겟

Popper.js는 현재 UMD, ESM 및 ESNext의 세 가지 대상을 염두에두고 제공됩니다.

  • UMD-범용 모듈 정의 : AMD, RequireJS 및 글로벌;
  • ESM-ES 모듈 : 사양을 지원하는 웹팩 / 롤업 또는 브라우저 용;
  • ESNext :에서 사용 가능 dist/하며 webpack 및 babel-preset-env;

귀하의 필요에 맞는 것을 사용하십시오. <script>태그 와 함께 가져 오려면 UMD를 사용하세요.


UMD 디렉토리에있는 popper.min.js 파일을 사용하면 npm을 통해 popper를 설치할 때 문제가 해결되었습니다. 감사합니다!
— Kickin_Wing

6

번들 구성 번들에 다음 코드가 있습니다 .Add (new ScriptBundle ( "~ / bundles / jquery"). Include ( "~ / Scripts / jquery- {version} .js"));

        bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate*"));

        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at https://modernizr.com to pick only the tests you need.
        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));

        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                    "~/Scripts/umd/popper.min.js",
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));

레이아웃 HTML의 다음 코드

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")

이것은 나를 위해 일했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.