Tôi đang gặp sự cố khi cấu hình Bootstrap 4 beta trong ứng dụng Aurelia CLI (v0.31.1) với requirejs và sử dụng TypeScript. Sau khi đã thử một số biến thể cấu hình, tôi tiếp tục gặp lỗi giao diện điều khiển sau:Lỗi Bootstrap 4 "Trình đơn thả xuống Bootstrap yêu cầu Popper.js", với Aurelia CLI và Require.js
Uncaught Error: Bootstrap dropdown require Popper.js
Đây là các bước để tạo lại. Đầu tiên, cài đặt các gói:
$ npm install --save jquery [email protected] popper.js
Tiếp theo, tôi đã cấu hình aurelia.json:
"jquery",
{
"name": "popper.js",
"path": "../node_modules/popper.js/dist/umd",
"main": "popper"
},
{
"name": "bootstrap",
"path": "../node_modules/bootstrap/dist",
"main": "js/bootstrap.min",
"deps": [
"jquery",
"popper.js"
],
"exports": "$",
"resources": [
"css/bootstrap.css"
]
}
Lưu ý trong cấu hình trên rằng:
- popper.js được đăng ký trước khi bootstrap
- mô-đun UMD được sử dụng
- popper.js được thiết lập như một sự phụ thuộc cho bootstrap, bên cạnh jquery
Cuối cùng, trong app.ts tôi:
import 'bootstrap';
Với cấu hình này, xây dựng sử dụng au build
hoạt động tốt. Nhưng khi chạy, sử dụng au run --watch
tôi nhận được giao diện điều khiển lỗi sau đây:
Uncaught Error: Bootstrap dropdown require Popper.js (https://popper.js.org) (defaults.js:19)
Uncaught Error: Bootstrap dropdown require Popper.js (https://popper.js.org) (bootstrap.min.js:6)
... a bit further on:
Uncaught TypeError: plugin.load is not a function at Module. (defaults.js:19)
Thật không may, các tài liệu Bootstrap 4 chỉ đề cập đến instructions on webpack. Vì vậy, tìm kiếm trên cả hai của Aurelia Gitter.im channel và trên StackOverflow. Tôi không thể tìm thấy các mẫu liên quan đến Aurelia CLI với Require.js. Cuối cùng, số truy cập của Google chỉ hiển thị các ví dụ về cách nhúng các phiên bản alpha (dựa trên 'chia sẻ kết nối' thay vì 'popper').
câu hỏi tương tự trên SO, trong đó có lỗi tương tự nhưng không được áp dụng với tình hình của tôi:
- Bootstrap 4 Beta importing Popper.js with Webpack 3.x throws Popper is not a constructor
- Angular 4 Bootstrap dropdown require Popper.js
- And several more...
Vì vậy, câu hỏi của tôi: làm thế nào thế nào tôi có thể cấu hình Bootstrap 4 với Popper.js trong một ứng dụng Aurelia CLI (sử dụng Require.js, không phải Webpack)?
Cảm ơn.
Tuyệt vời, việc thêm "prepend" thực sự hoạt động, ngay cả khi không thay đổi gói gốc của tôi. Cảm ơn! –
Không chắc chắn bạn sẽ muốn popper trong bundling cũng như bạn sẽ được bao gồm nó hai lần. – 4imble
Đây là lời cảm ơn tuyệt vời cho câu hỏi và câu trả lời! –