如何导入 popper.js?
Posted
技术标签:
【中文标题】如何导入 popper.js?【英文标题】:How to import popper.js? 【发布时间】:2018-01-20 21:06:21 【问题描述】:这似乎是一个蹩脚的问题,但我无法弄清楚。如何导入 Bootstrap 4 beta 自带的 popper.js?
我使用 Bower,并且安装了 Bootstrap 4 beta。现在在bower_components
文件夹中,有popper.js
目录,其中包含一些子文件夹。问题是没有dist
文件夹和popper.min.js
文件。
引导至 CDN 的 4 指南链接:https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js
。
如何在没有CDN的情况下导入popper.js
?在哪里可以找到popper.min.js
文件?
编辑:即使我从 popper.js 网站下载 zip
文件,它包含的文件与我从 Bower
下载的文件相同。
【问题讨论】:
将它(从 CDN)下载到您的服务器目录,然后从那里引用?! 您链接到的文件创建了一个Popper
变量,因此下载该文件并通过<script>
导入它应该可以工作。
我希望用户 bower
以后能够轻松更新脚本。
Bower 已弃用,请使用 npm
【参考方案1】:
我遇到了同样的问题。
我从引导网站上的 CDN 下载了“popper.min.js”文件。
请看这里:https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js
比编译项目更容易。
重要提示:您必须在 jquery 之后但在 bootstrap 之前包含 popper。
【讨论】:
老兄,你是我的英雄。在我的空闲时间学习 web 开发,每个人都在谈论 Bower 和 Yarn 等。然后你就像,只要包括这个。 这种方法很酷的部分,你已经落后于我的库的最新版本,你错过了一些重要的修复。这就是依赖管理器存在的原因。 @FezVrasta 你是什么意思? 如果你复制粘贴代码而不使用依赖管理器,你会错过重要的更新。 @FezVrasta 有道理。但是我确定使用它的人都知道,因为它是本地文件?【参考方案2】:官方安装 Popper.js 的方式是通过 npm、Yarn 或 NuGet。
使用以下任一命令:
npm i popper.js
yarn add popper.js
PM> Install-Package popper.js
库自述文件中描述了所有内容。
关于“下载 zip”,该 zip 明确指出它包含库的源代码。
编辑:
从版本 1.12.0
开始,Popper.js 可作为 Bower 依赖项使用。
此安装方式将仅支持1.x
版本的 Popper.js,并将在2.x
中删除。
您应该按照 Bower 的建议将您的依赖管理迁移到现代系统,如 npm 或 Yarn。
【讨论】:
这并不容易。通过 Bower 安装 Bootstrap 4 时,它正在下载未编译的 popper.js,但下载的 jQuery 已“准备就绪”。 Bower 已弃用,您应该使用 npm npm 似乎没有安装实际的 popper.js 文件。之后还有下一步吗? 您在 dist 文件夹中找到文件。确保安装 popper.js,而不是“popper” Fez Vrasta,你刚刚为我节省了几个小时。 npm install popper.js --save【参考方案3】:popper.js的获取方式:包、CDN、本地文件
最好的方法取决于你的项目是否有像 npm 这样的包管理器。
包管理器 如果您使用的是包管理器,请使用它来获取 popper.js,如下所示:
npm install popper.js --save
CDN 对于原型或游乐场环境(如http://codepen.io)或者可能只需要指向 CDN 文件的 URL:
https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.5/umd/popper.js https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.5/umd/popper.min.js
注意:Bootstrap 4 需要 umd 路径 (more info on popper/bs4) 下的版本。
本地文件
只需保存其中一个 CDN 文件即可在本地使用。例如,将这些 URL 之一粘贴到浏览器中,然后另存为... 以获取本地副本。
https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.5/umd/popper.js https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.5/umd/popper.min.js
【讨论】:
【参考方案4】:我遇到了同样的问题。尝试了不同的方法,但这一种对我有用。 阅读http://getbootstrap.com/的说明。
以与给定相同的方式(这很重要)复制 Javascript(Popper、jQuery 和 Bootstrap)的 CDN 路径。
<head>
//Path to jQuery
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
////Path to Popper - it is for dropsdowns etc in bootstrap
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
//Path to bootsrap
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
</head>
【讨论】:
【参考方案5】:我真的不明白为什么 javascript 世界试图做更复杂的事情。为什么不直接下载并包含在 html 中?试图在 Java 中拥有类似 Maven 的东西?但是我们必须手动将它包含在 html 中吗?那么,重点是什么?也许有一天我会明白,但不是现在。
这就是我得到它的方法
下载并安装 NodeJs 运行“npm install popper.js --save”然后我收到这条消息
popper.js@1.12.7 在 1.215 秒内添加 1 个包
那么“添加包”在哪里?非常翔实,对吧?我在我的 C:\Users\surasin\node_modules\popper.js\dist
中找到了它希望有帮助
【讨论】:
太多基于意见的答案,没有大量技术资源。 我也不明白为什么bootstrap 4包含外部popper.js,这意味着升级到最新版本时bootstrap变得更加复杂而不是简单。【参考方案6】:添加 popper**.js** 作为依赖而不是 popper(仅):查看粗体的区别。
纱线添加 popper.js ,而不是 纱线添加波普尔
它有所作为。
并根据您的需要包含脚本:
作为 html 或 库访问作为 SPA 应用程序(如 react 或 angular)中的依赖项
【讨论】:
【参考方案7】:在bootstrap 4中你需要添加popper js作为tooltip,我也不明白为什么bootstrap 4包含外部popper.js,这意味着升级到最新版本时bootstrap变得更加复杂而不是简单。
你可以在 Angular 或简单的 html 上引导之前导入 popper js,Angular 导入是这样的
npm install popper.js --save
然后转到 .angular-cli.json 并更改如下顺序。
"scripts": [
"../node_modules/jquery/dist/jquery.slim.min.js",
"../node_modules/tether/dist/js/tether.min.js",
"../node_modules/popper.js/dist/umd/popper.js",
"../node_modules/bootstrap/dist/js/bootstrap.min.js"
],
您也可以在任何项目中使用 CDN 直接调用 popper js。
https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.5/umd/popper.jshttps://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.5/umd/popper.min.js
【讨论】:
【参考方案8】:我删除了所有现有的 popper 目录,然后运行
npm install --save popper.js angular-popper
【讨论】:
【参考方案9】:事实证明,Popper.js doesn't provide compiled files 在其 GitHub 存储库中。因此,必须自己编译项目或从 CDN 下载编译后的文件。无法自动导入。
【讨论】:
建议的方式是实际使用npm【参考方案10】:您可以使用 Fetch Injection 使用单个命令下载和导入所有 Bootstrap 和 Popper:
fetchInject([
'https://npmcdn.com/bootstrap@4.0.0-alpha.5/dist/js/bootstrap.min.js',
'https://cdn.jsdelivr.net/popper.js/1.0.0-beta.3/popper.min.js'
], fetchInject([
'https://cdn.jsdelivr.net/jquery/3.1.1/jquery.slim.min.js',
'https://npmcdn.com/tether@1.2.4/dist/js/tether.min.js'
]));
如果您也需要 CSS 文件,请添加这些文件。调整版本和外部来源以满足您的需求,如果您没有在自己的域中托管文件或不信任来源,请考虑使用子资源完整性检查。
【讨论】:
【参考方案11】:使用特定版本号安装popper.js
,如下所示:
bower install popper.js@^1.16.0
现在您可以找到dist
文件夹和popper.min.js
文件。
【讨论】:
【参考方案12】:首先通过 yarn 安装 propperJs
yarn add popper.js
然后你可以像这样导入它
import Popper from "popper.js";
【讨论】:
以上是关于如何导入 popper.js?的主要内容,如果未能解决你的问题,请参考以下文章
如何给popper.js popper-box边距/填充,使其不会粘在窗口边框上
即使在包含 popper.js 之后仍然出现“未捕获的错误:引导下拉菜单需要 Popper.js”