如何修复此错误:“找不到模块:无法解析 popper.js”

Ran*_*ndu 41 jquery reactjs react-bootstrap react-popper

导入 Bootstrap 和 Jquery 后,编译时显示此错误。

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import 'bootstrap/dist/css/bootstrap.css';
import './index.css';

global.jQuery = require('jquery');
require('bootstrap');
Run Code Online (Sandbox Code Playgroud)

ace*_*ndr 115

Popper.js 是 Bootstrap 4 的依赖项,用于显示弹出窗口。它是引导程序的对等依赖项,这意味着它是引导程序需要但在安装时不包含在自身中的东西。所以要安装 popper.js 运行

npm install popper.js --save
Run Code Online (Sandbox Code Playgroud)

它被设置为对等依赖项,因为有些人只使用 Bootstrap 的 css 而没有 javascript。jQuery 和 popper.js 是对等依赖,需要单独安装。如果你需要 Bootstrap 的 javascript,你需要在 Bootstrap 4 旁边安装 jQuery 和 popper.js。


Bootstrap 5需要“Popper.js Core ”,而不是 Popper.js。你应该运行这个:

npm install @popperjs/core --save
Run Code Online (Sandbox Code Playgroud)

(感谢@Kyouma 在评论中添加此内容)

  • 请注意 - popper.js 现在是旧版本。bootstrap 5.x 将支持 `npm i @popperjs/core`。上面的代码(完全正确)是最新到 v4.x 的代码。 (18认同)
  • @JCarlos 从技术上讲,如果您的应用程序运行需要它,那么它不是开发依赖项。所以 --save 在这里更有意义。 (2认同)

OBI*_*ARE 24

对于bootstrap 5你要

npm 用户: npm install @popperjs/core --save

对于纱线用户: yarn add @popperjs/core

然后像这样导入引导程序:


import 'bootstrap/dist/js/bootstrap.bundle';

Run Code Online (Sandbox Code Playgroud)


Aye*_*hik 5

很简单,你可以访问这个,并将文件保存为 popper.min.js

然后导入它。

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import 'bootstrap/dist/css/bootstrap.css';
import './index.css';
import 'bootstrap/dist/js/popper.min.js';
global.jQuery = require('jquery');
require('bootstrap');
Run Code Online (Sandbox Code Playgroud)

  • 效果很好,无需更改 webpack。 (2认同)

小智 5

就像 tomi0505 所写的那样,您需要导入 bootstrap 和其他类似的东西:

import 'jquery';
import '@popperjs/core'; // Edit here
import 'bootstrap/dist/js/bootstrap.bundle';
Run Code Online (Sandbox Code Playgroud)

在那之后它会工作得很好,我希望。


小智 5

我也遇到了同样的问题,并使用以下命令安装 popper:-

npm install vue-popperjs --save
Run Code Online (Sandbox Code Playgroud)

但是,然后我意识到我正在使用 bootstrap 5,它不再支持这个命令。因此,与 Bootstrap 5 一起用于“Popperjs Core”的命令,

npm install @popperjs/core --save
Run Code Online (Sandbox Code Playgroud)