popper.js trong bootstrap 4 cho phép xuất mã thông báo không mong đợi SyntaxError


100

Tôi đã thử cài đặt bootstrap 4 và bao gồm các liên kết sau

<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>

Nhưng lỗi sau xảy ra:

Cú pháp không có sẵn Lỗi: Xuất mã thông báo không mong muốn

nhập mô tả hình ảnh ở đây

làm thế nào để khắc phục các ý tưởng đó?


Tôi không biết, tệp bootstrap yêu cầu nó
Павел Шиляев

không, tôi đã sử dụng bootstrap nhưng nó chưa bao giờ hỏi tôi
Ashish sah

1
phiên bản cuối cùng được hỏi
Павел Шиляев

tốt Nếu đúng như vậy thì tôi sẽ nói sử dụng các liên kết CDN
Ashish sah.

vấn đề là tôi không được phép sử dụng liên kết CDN khi quảng cáo lớn trên thị trường
Павел Шиляев

Câu trả lời:


34

Tôi gặp phải vấn đề tương tự nếu tôi sử dụng popper.js từ mạng CDN như cdnjs.

Nếu bạn quan sát mã nguồn của các Bootstrap 4ví dụ như Navbar ví dụ, bạn có thể thấy mã nguồn popper.min.jsđược tải từ:

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

Tôi đã đưa nó vào dự án của mình và lỗi đã biến mất. Bạn có thể tải xuống mã nguồn từ

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

và đưa vào dự án của bạn dưới dạng tệp cục bộ và nó sẽ hoạt động.


Đúng. Bạn đúng rồi. Tôi đã sao chép và dán mã đó và lỗi biến mất. CDN không chỉ định bất kỳ phiên bản cụ thể nào củapopper.js
Fabrizio Bertoglio

2
Mặc dù nó hoạt động nhưng tôi nghĩ đây không phải là cách thích hợp, cho đến khi nhóm BootStrap cập nhật mã của riêng mình.
Nadeem Jamali

8
URL trên trả về lỗi không tìm thấy (404). Tôi đã sử dụng getbootstrap.com/docs/4.1/assets/js/vendor/popper.min.js cho Bootstrap 4.1.3 và điều này đã giải quyết được sự cố cho tôi.
Mike Strother

1
Sử dụng kỹ thuật gợi ý trong câu trả lời này giống như đuổi theo một mục tiêu đang di chuyển. Câu trả lời đúng được cung cấp bởi Marc và Zim.
nagu 27/09/18

tiếc là điều này không hoạt động nữa. Lỗi đã biến mất, nhưng chú giải công cụ là chú giải công cụ HTML mặc định
deanwilliammills

244

Tôi cũng hiểu điều này và tìm ra lý do tại sao nó thực sự xảy ra. Trong trường hợp những người khác đến đây:

Kiểm tra "Cách sử dụng" readme.md. Lib có sẵn trong ba phiên bản cho ba bộ tải mô-đun khác nhau. Tóm lại: nếu bạn tải nó bằng <script>thẻ thì bạn phải sử dụng phiên bản UMD . Bạn có thể tìm thấy nó trong /dist/umd. Mặc định (trong /dist) là ESNext (ECMA-Script) không thể tải bằng scriptthẻ.


5
Cảm ơn bạn. Đã loại bỏ lỗi cho tôi bằng cách thay đổi sang tệp umd.
user1500321

4
Thay đổi tham chiếu đến tập tin trong thư mục UMD giải quyết vấn đề của tôi
Vimalan Jaya Ganesh

16
Điều này nên đã được chấp nhận câu trả lời. Tuyệt vời. Cảm ơn rât nhiêu vê nhưng chia sẻ.
Ajay Kumar

3
Theo trên, đây là câu trả lời thực sự.
Ron

1
Tuyệt vời vì sự trợ giúp nhanh chóng, cảm ơn. Tôi đã tự hỏi thư mục / umd và / esm này là gì nhưng Google không cho kết quả tốt.
Blackbam

89

Bootstrap 4 yêu cầu phiên bản UMD popper.jsvà đảm bảo thứ tự như sau:

<!-- 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>

Phiên bản UMD là liên kết CDN duy nhất đã loại bỏ lỗi.
nyusternie

Cảm ơn bạn đời! Đặt hàng của bạn đã khắc phục sự cố của tôi. Chúc mừng!
Noobie

17

Bạn cũng có thể thêm bootstrap.bundle.min.js và xóa popper.js trong html của mình.

Các tệp JS được gói ( bootstrap.bundle.jsvà được rút gọn bootstrap.bundle.min.js) bao gồm [Popper] ( https://popper.js.org/ ), nhưng không bao gồm jQuery .


2
bootstrap.bundle.min.jsbao gồmpopperjs
vuhung3990

Câu trả lời tốt nhất vì nó không đòi hỏi sử dụng các thư viện Popper.js thêm ở tất cả
BuddyZ

10

Dòng 96 trong README

Mục tiêu phân khu

Popper.js hiện được vận chuyển với 3 mục tiêu: UMD, ESM và ESNext.

  • UMD - Định nghĩa mô-đun chung: AMD, RequiJS và hình cầu;
  • Mô-đun ESM - ES: Dành cho webpack / Rollup hoặc trình duyệt hỗ trợ thông số kỹ thuật;
  • ESNext: Có sẵn dist/, có thể được sử dụng với webpack và babel-preset-env;

Đảm bảo sử dụng đúng loại cho nhu cầu của bạn. Nếu bạn muốn nhập nó bằng <script>thẻ, hãy sử dụng UMD.


Sử dụng tệp popper.min.js nằm trong thư mục UMD đã giải quyết được sự cố của tôi khi cài đặt popper qua npm. Cảm ơn bạn!
Kickin_Wing

6

Bạn có mã sau trong Bundle Config Bundles.Add (new ScriptBundle ("~ / Bundles / jquery"). Bao gồm ("~ / 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"));

mã sau trong html bố cục

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

Điều này đã làm việc cho tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.