【问题标题】:Installing a dependency already installed by another dependency安装已由另一个依赖项安装的依赖项
【发布时间】:2019-01-24 17:24:04
【问题描述】:

这是我第一次问关于 SO 的问题,那是因为我找不到任何与我的问题匹配的关键字。

我有一个 Symfony 应用程序,我正在使用通过 composer 下载的 easyadmin 包。我将用easyadmin 的例子来解释事实,但我的问题也可能在另一个捆绑包上。

所以,easyadmin 捆绑包有几个依赖项,如 jquery v2.2.0、bootstrap v3.3.6、Respond.js v1.4.2、select2 4.0.1 等... easyadmin 的依赖关系直到现在都不是问题。确实,我现在需要使用bootstrap 的最后一个版本,即4.1.1。

和我的其他前端依赖项一样,我使用的是yarn。我所有的前端依赖项都在一个名为dependencies 的文件夹中,该文件夹位于 public/asset 我项目的文件夹。

我已经尝试使用yarn 下载bootstrap 的最新版本,但我现在在我的项目中加载了两个版本的bootstrap。 这是个问题吗?

为了用 javascript 文件说明这一点(因为我的问题涉及 js 和 css 文件),我有一个 vendor 文件夹,里面有 easyadmin:

- vendor
|
--- easyadmin-bundle
  |
  --- src/Resources/public/javascript/
    |
    --- select2.min.js
    --- bootstrap.min.js
    --- respond.min.js

还有我的文件夹dependencies 包含我项目的所有依赖项:

- public
|
--- asset
  |
  --- dependencies
    |
    --- bootstrap.min.js

据我了解,在这种情况下,我必须在我的项目中拥有bootstrap 的两个版本。因为easyadmin 使用bootstrap v3 作为其功能,而我 需要bootstrap 4 用于我的项目。 我说的对吗?

例如,如果easyadmin 使用bootstrap 的版本4,我是否必须将bootstrap 4 添加到我的项目中,还是应该使用easyadmin 的引导版本?我很困惑..

提前感谢您对未来的回答。

【问题讨论】:

  • 记住,EasyAdmin 不是 Symfony 的一部分。它是一个捆绑包。 Symfony 不包含任何 CSS/JS 库。如果您需要使用 EasyAdmin,您将在您的 Admin 路由上使用 Bootstrap 3。如果不是只加载所有前端库一次的应用程序,您可以在前视图中使用 Bootstrap 4。只需配置您的视图模板。如果是 One Page App 或类似应用,则必须使用 Bootstrap 3 以避免 EasyAdmin 出现问题。查看文档以了解有关前端加载库的更多信息。[symfony.com/doc/current/….

标签: symfony dependencies composer-php yarnpkg


【解决方案1】:

在您的示例中,具有两个版本的引导程序不是问题,因为 EasyAdminBundle 附带了这些依赖项,这些依赖项隐藏在 src/Resources/public/ 的包中。这些将被复制或符号链接到您项目的公共文件夹中。这意味着只要您不覆盖其中任何一个并且不意外地将它们混入前端逻辑中,您就应该没问题。不将它们混合起来应该很容易,因为您只需要 public/asset 文件夹中的文件,这些文件不会干扰由 EasyAdminBundle 创建的文件。

您不应该依赖 EasyAdminBundle 中的 js 和 css,因为您无法控制它的更新方式。因此,即使 EasyAdminBundle 在某些时候迁移到 bootstrap 4,我还是建议您将前端依赖项与 EasyAdminBundle 提供的依赖项分开。此建议可能不适用于提供资产的每个捆绑包。

【讨论】:

  • 谢谢@dbrumann,这就是我正在寻找的解释。我认为复制 css/js 文件是一种不好的做法,但正如你所说,我们有时不能这样做。
猜你喜欢
  • 2015-04-01
  • 2016-08-21
  • 2016-09-09
  • 2021-10-15
  • 2015-01-24
  • 2010-10-26
  • 2016-03-14
  • 2016-07-29
  • 2020-05-28
相关资源
最近更新 更多