popper.js ใน bootstrap 4 ให้การส่งออกโทเค็นที่ไม่คาดคิดของ SyntaxError


99

ฉันลองติดตั้ง bootstrap 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>

แต่เกิดข้อผิดพลาดต่อไปนี้:

Uncaught syntaxError: การส่งออกโทเค็นที่ไม่คาดคิด

ป้อนคำอธิบายภาพที่นี่

มีความคิดอย่างไรในการแก้ไข


ฉันไม่รู้ว่าไฟล์ bootstrap ต้องการมัน
ПавелШиляев

ไม่ฉันเคยใช้ bootstrap แต่ไม่เคยถามฉัน
Ashish sah

1
ถามรุ่นล่าสุด
ПавелШиляев

ถ้าเป็นเช่นนั้นฉันจะบอกให้ใช้ลิงก์ CDN
Ashish sah

ปัญหาคือฉันไม่ควรใช้ลิงค์ CDN เมื่อดังในตลาด
ПавелШиляев

คำตอบ:


34

ฉันพบปัญหาเดียวกันหากฉันใช้ popper.js จากเครือข่าย CDN เช่น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

2
แม้ว่าจะได้ผล แต่ฉันคิดว่านี่ไม่ใช่วิธีที่เหมาะสมจนกว่าทีม BootStrap จะอัปเดตโค้ดของตัวเอง
Nadeem Jamali

8
URL ด้านบนส่งคืนข้อผิดพลาดไม่พบ (404) ฉันใช้getbootstrap.com/docs/4.1/assets/js/vendor/popper.min.jsสำหรับ Bootstrap 4.1.3 และสิ่งนี้ช่วยแก้ปัญหาให้ฉันได้
Mike Strother

1
การใช้เทคนิคที่แนะนำในคำตอบนี้ก็เหมือนกับการไล่ล่าเป้าหมายที่กำลังเคลื่อนที่ คำตอบที่ถูกจัดทำโดย Marc และ Zim
nagu

ขออภัยไม่สามารถใช้งานได้อีกต่อไป ข้อผิดพลาดหายไป แต่คำแนะนำเครื่องมือเป็นคำแนะนำเครื่องมือ HTML เริ่มต้น
deanwilliammills

243

เพิ่งได้รับสิ่งนี้ด้วยและคิดว่าทำไมมันถึงเกิดขึ้นจริงๆ ในกรณีที่ผู้อื่นมาถึงที่นี่:

ตรวจสอบ readme.md "การใช้งาน" lib มีให้เลือกสามรุ่นสำหรับตัวโหลดโมดูลที่แตกต่างกันสามแบบ กล่าวโดยย่อ: หากคุณโหลดด้วย<script>แท็กคุณต้องใช้เวอร์ชันUMD คุณสามารถค้นหาได้ใน/dist/umd. ค่าเริ่มต้น (ใน/dist) คือESNext (ECMA-Script) ซึ่งไม่สามารถโหลดได้โดยใช้scriptแท็ก


5
ขอบคุณ. กำจัดข้อผิดพลาดให้ฉันโดยเปลี่ยนเป็นไฟล์ umd
user1500321

4
การเปลี่ยนการอ้างอิงไปยังไฟล์ภายใต้โฟลเดอร์ umd ช่วยแก้ปัญหาของฉัน
Vimalan Jaya Ganesh

16
สิ่งนี้ควรได้รับการยอมรับ น่ากลัว ขอบคุณมากสำหรับการแบ่งปัน
Ajay Kumar

3
ต่อไปนี้เป็นคำตอบที่แท้จริง
รอน

1
ยอดเยี่ยมสำหรับความช่วยเหลือที่รวดเร็วขอบคุณ ฉันสงสัยว่าโฟลเดอร์นี้ / umd และ / esm คืออะไร แต่ Google ไม่ได้ให้ผลลัพธ์ที่ดี
Blackbam

88

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 และลบ popper.js ใน html ของคุณได้

ไฟล์แถม JS ( bootstrap.bundle.jsและลดขนาดลงbootstrap.bundle.min.js) รวมถึง [ตกใจ] ( https://popper.js.org/ ) แต่ไม่jQuery


2
bootstrap.bundle.min.jsรวมpopperjs
vuhung3990

คำตอบที่ดีที่สุดเนื่องจากไม่ต้องใช้ห้องสมุด Popper.js เพิ่มเติมเลย
BuddyZ

10

บรรทัด 96 ใน README

เป้าหมาย Dist

ปัจจุบัน Popper.js จัดส่งโดยมีเป้าหมาย 3 เป้าหมาย ได้แก่ UMD, ESM และ ESNext

  • UMD - นิยามโมดูลสากล: AMD, RequireJS และ globals;
  • ESM - โมดูล ES: สำหรับ webpack / Rollup หรือเบราว์เซอร์ที่รองรับข้อมูลจำเพาะ
  • ESNext: Available in dist/สามารถใช้ได้กับ webpack และbabel-preset-env;

อย่าลืมใช้ให้ถูกกับความต้องการของคุณ หากคุณต้องการนำเข้าด้วย<script>แท็กให้ใช้ UMD


การใช้ไฟล์ popper.min.js ที่อยู่ในไดเร็กทอรี UMD แก้ไขปัญหาที่ออกเมื่อติดตั้ง popper ผ่าน npm ขอบคุณ!
Kickin_Wing

6

คุณมีโค้ดต่อไปนี้ในบันเดิล Bundle Config เพิ่ม (ScriptBundle ใหม่ ("~ / bundle / jquery") รวม ("~ / 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.