安装另一个依赖项已安装的依赖项



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

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

因此,easyadminbundle 有几个依赖关系,如jquery v2.2.0bootstrap v3.3.6Respond.js v1.4.2select2 4.0.1等。到目前为止,easyadmin的依赖关系还不是问题。确实,我现在需要使用bootstrap的最新版本,即4.1.1

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

我已经尝试下载带有yarnbootstrap的最新版本,但是我现在在我的项目中加载了两个版本的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的引导程序版本?我很困惑..

提前感谢您未来的答案。

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

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

最新更新