簡體   English   中英

Bootstrap 4:未捕獲的 ReferenceError:未定義 Popper

[英]Bootstrap 4: Uncaught ReferenceError: Popper is not defined

我已經使用 Node 和 Gulp 安裝了 Bootstrap 4,並且在運行應用程序時出現以下錯誤

未捕獲的 ReferenceError:未定義 Popper

到目前為止,我只使用了 Bootstrap 網格系統,我還沒有使用任何需要 Bootstrap JS 的東西。 在我看來,Bootstrap 缺少某些東西,或者我沒有正確安裝它(老實說,這可能是我) - 有沒有其他人遇到過同樣的問題或根本不知道修復方法?

自 Bootstrap beta 2 發布以來,我們添加了兩個新的 dist 文件: bootstrap.bundle.jsbootstrap.bundle.min.js ,其中包含Popper.js

另外使用此鏈接查找最新版本的 Popper.js: https ://cdnjs.com/libraries/popper.js 因為上面鏈接的版本(1.8.2)很舊,最新的是 1.12.9

順便說一句,您應該選擇 Popper.js 的 UMD 版本,因為它是 Bootstrap 使用的版本

在已經使用bootstrap.bundle.js popper.js NPM路徑'引導/距離/ JS / bootstrap.bundle.js'。

對於那些在 Webpack 上遇到此問題的人:在您的入口文件中,
import 'bootstrap'確實給出了錯誤。 您需要刪除它並將其替換為import 'bootstrap/dist/js/bootstrap.bundle.js'

這已經足夠了,您不需要單獨導入 Popper。 這適用於引導程序 4.0.0.beta2

就我而言,事實證明應該在bootstrap.js之前調用popper.js腳本。

<script src="https://../popper.js/1.12.3/umd/popper.min.js"></script>
<script src="https://../bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script>

我遇到了同樣的問題,並且在一個簡單的輪播上玩了半天。 Mac 上的 Safari 沒有正確提供反饋,因為庫優先:

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.6/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script>

回顧我遇到的錯誤“你需要在 BS 之前使用 JQ 才能工作”,所以我嘗試了它,還將Popper放在 BS 之前。

所以我在我的<head>擁有所有這些,並且它奏效了。

1-復制此頁面上的代碼: https : //cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js

2-Past 新文件並保存此名稱 (popper.min.js)

3-在引導腳本之前在 html 上添加腳本:

<script src="popper.min.js"></script>
<script src="bootstrap.js"></script>

我有同樣的。 我在 Rails 上,我從https://github.com/twbs/bootstrap-rubygem安裝了 bootstrap 4 gem。 我只是首先在 application.js 中提出 popper 要求,如下所示:

//= require popper
//= require jquery3
//= require jquery_ujs
//= require bootstrap-sprockets
//= require bootstrap

對於那些在這里並試圖將 popper v2 添加到 Laravel 的人

  1. 在 devDependencies 部分的 package.json 中,我們有 "popper.js": "^1.12" ,因此刪除此字符串 正如官方文檔所說,他們轉向@popperjs范圍名稱。 如果您在項目中使用了任何 v1 poppers,請遵循文檔中的遷移指南 v1 到 v2。 UPD :引導程序需要此 sht。 所以,我必須在刪除后重新安裝它。 跳過這一步。
  2. 在控制台npm i @popperjs/core
  3. 在 bootstrap.js 的 try 部分添加window.Popper = require('@popperjs/core')
  4. 在控制台npm run dev重建你的 js
  5. 好的,現在你可以讓你的實例let _instance = Popper.createPopper(element, tooltip, {})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM