Для раскрывающегося списка Angular 4 Bootstrap требуется Popper.js
У меня есть свежее созданное приложение Angular 4 CLI. После запуска этого:
npm install bootstrap@4.0.0-beta jquery popper.js --save
и редактируем.angular-cli.json так:
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [
"../node_modules/jquery/dist/jquery.slim.min.js",
"../node_modules/bootstrap/dist/js/bootstrap.min.js",
"../node_modules/popper.js/dist/umd/popper.min.js"
],
У меня все еще есть проблема в консоли Chrome:
Uncaught Error: Bootstrap dropdown require Popper.js (https://popper.js.org)
at eval (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:6:17548)
at eval (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:6:23163)
at eval (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:6:50902)
at eval (<anonymous>)
at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9)
at Object.../../../../script-loader/index.js!../../../../bootstrap/dist/js/bootstrap.min.js (bootstrap.min.js?f885:1)
at __webpack_require__ (bootstrap a2f1d85ef068872b0530:54)
at Object.2 (scripts.bundle.js:66)
at __webpack_require__ (bootstrap a2f1d85ef068872b0530:54)
at webpackJsonpCallback (bootstrap a2f1d85ef068872b0530:25)
Как это исправить?
6 ответов
Включают popper.js
до bootstrap.js
:
"scripts": [
"../node_modules/jquery/dist/jquery.slim.min.js",
"../node_modules/popper.js/dist/umd/popper.min.js"
"../node_modules/bootstrap/dist/js/bootstrap.min.js",
],
Для угловых 7
npm установить загрузчик jquery popper.js --save
"styles": [
"src/styles.scss",
"node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.slim.min.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js",
"node_modules/popper.js/dist/umd/popper.min.js"
],
Была такая же проблема, когда я обновил приложение до версии Angular 8. В качестве решения можно использовать минимизированный файл js пакета начальной загрузки вместо bootstrap.min.js. В комплект начальной загрузки уже включен popper.js. Необходимо исправить angular.json (scripts
массив в build
раздел), в финале будет что-то вроде этого:
"scripts": [
"./node_modules/jquery/dist/jquery.min.js",
"./node_modules/bootstrap/dist/js/bootstrap.bundle.min.js",
],
Для этого решения popper.js
не нужен в проекте. Можно удалить этот модуль:
npm uninstall popper.js
на всякий случай нужен jquery:)
Надеюсь, помогу тебе
Для Angular 8
npm установить bootstrap jquery popper.js --save
"styles": [
"src/styles.scss",
"node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.slim.min.js",
"node_modules/popper.js/dist/umd/popper.min.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js"
],
Angular с Bootstrap 5+ Поскольку в этой версии jQuery был удален
npm я загружаю popper.js*
"styles": [
"src/styles.scss",
"node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [
"node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"
"node_modules/popper.js/dist/umd/popper.min.js"
],
Новый
https://www.npmjs.com/package/@popperjs/core
не работает с бутстрапом 5.
он по-прежнему требует старого
https://www.npmjs.com/package/popper.js?ref=vanillalist
устаревший пакет.
попробовал в angular 13, не работает, поэтому приходится отступать.