如何在同一个应用程序中使用 yii2-bootstrap4 扩展和 bootstrap 3
how to use yii2-bootstrap4 extension with bootstrap 3 in the same app
我已经尝试安装 yii2-bootstrap4
但是我得到了这个作曲家错误
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for yiisoft/yii2-bootstrap4 ^1.0@dev -> satisfiable by yiisoft/yii2-bootstrap4[1.0.x-dev].
- Conclusion: don't install bower-asset/bootstrap v3.3.7
- yiisoft/yii2-bootstrap4 1.0.x-dev requires bower-asset/bootstrap ~4.0.0 -> satisfiable by bower-asset/bootstrap[v4.0.0, v4.0.0-beta.3, v4.0.0-beta1, v4.0.0-alpha.6, v4.0.0-alpha.5, v4.0.0-alpha.4, v4.0.0-alpha.3, v4.0.0-alpha.2, v4.0.0-alpha1].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-beta.3].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-beta1].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.6].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.5].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.4].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.3].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.2].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha1].
- Installation request for bower-asset/bootstrap (locked at v3.3.7) -> satisfiable by bower-asset/bootstrap[v3.3.7].
Installation failed, reverting ./composer.json to its original content
我希望能够在同一个应用程序中使用 bootstrap3 和 4,我也尝试了此 issue "prefer-stable": true,
中描述的方法,但也没有用。
那么我到底应该怎么做,如何将 bootstrap:~3.0 和 bootstrap:~4.0 与官方 yii2-bootstrap 包一起使用
您可以尝试以这种方式覆盖一些要求:
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "~2.0.14",
"yiisoft/yii2-bootstrap": "~2.0.8",
"yiisoft/yii2-bootstrap4": "1.0.x-dev",
"bower-asset/bootstrap": "3.3.7 as 4.1.3",
"npm-asset/bootstrap": "~4.1.3"
},
这将从 bower 安装 bootstrap 3.3.7,从 npm 安装 bootstrap 4.1.3。您需要更新 bootstrap4 个资产包的路径:
'components' => [
'assetManager' => [
'bundles' => [
'yii\bootstrap4\BootstrapAsset' => [
'sourcePath' => '@npm/bootstrap/dist'
],
'yii\bootstrap4\BootstrapPluginAsset' => [
'sourcePath' => '@npm/bootstrap/dist'
]
]
]
]
请注意,yii2-bootstrap4
尚未准备好使用,甚至没有 alpha/beta 版本,因此预计会出现许多其他问题。
很多关于如何在 Yii2 中使用 Bootstrap 4 的解决方案。甚至 Yii2 团队也为此创建了一个 extension。但是因为,我不喜欢太多的配置。这就是我所做的。在 AppAsset.php 中,删除 yii\bootstrap\BootstrapAsset 并自定义。我会建议,您坚持使用原始文件名和类名。
// AppAsset.php
public $depends = [
'yii\web\YiiAsset',
//'yii\bootstrap\BootstrapAsset', // Remove this
'app\assets\BootstrapAsset', // Add this
];
然后,我在 assets 文件夹中创建了一个 BootstrapAsset.php 文件。从 yii\bootstrap\BootstrapAsset 复制代码。然后更改了部分代码。没有 NPM,没有 Bower。
namespace app\assets;
use yii\web\AssetBundle;
class BootstrapAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'vendor/bootstrap/css/bootstrap.min.css'
];
public $js = [
'vendor/bootstrap/js/bootstrap.min.js',
'vendor/popper.js/umd/popper.min.js'
];
}
我已经尝试安装 yii2-bootstrap4 但是我得到了这个作曲家错误
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for yiisoft/yii2-bootstrap4 ^1.0@dev -> satisfiable by yiisoft/yii2-bootstrap4[1.0.x-dev].
- Conclusion: don't install bower-asset/bootstrap v3.3.7
- yiisoft/yii2-bootstrap4 1.0.x-dev requires bower-asset/bootstrap ~4.0.0 -> satisfiable by bower-asset/bootstrap[v4.0.0, v4.0.0-beta.3, v4.0.0-beta1, v4.0.0-alpha.6, v4.0.0-alpha.5, v4.0.0-alpha.4, v4.0.0-alpha.3, v4.0.0-alpha.2, v4.0.0-alpha1].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-beta.3].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-beta1].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.6].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.5].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.4].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.3].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha.2].
- Can only install one of: bower-asset/bootstrap[v3.3.7, v4.0.0-alpha1].
- Installation request for bower-asset/bootstrap (locked at v3.3.7) -> satisfiable by bower-asset/bootstrap[v3.3.7].
Installation failed, reverting ./composer.json to its original content
我希望能够在同一个应用程序中使用 bootstrap3 和 4,我也尝试了此 issue "prefer-stable": true,
中描述的方法,但也没有用。
那么我到底应该怎么做,如何将 bootstrap:~3.0 和 bootstrap:~4.0 与官方 yii2-bootstrap 包一起使用
您可以尝试以这种方式覆盖一些要求:
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "~2.0.14",
"yiisoft/yii2-bootstrap": "~2.0.8",
"yiisoft/yii2-bootstrap4": "1.0.x-dev",
"bower-asset/bootstrap": "3.3.7 as 4.1.3",
"npm-asset/bootstrap": "~4.1.3"
},
这将从 bower 安装 bootstrap 3.3.7,从 npm 安装 bootstrap 4.1.3。您需要更新 bootstrap4 个资产包的路径:
'components' => [
'assetManager' => [
'bundles' => [
'yii\bootstrap4\BootstrapAsset' => [
'sourcePath' => '@npm/bootstrap/dist'
],
'yii\bootstrap4\BootstrapPluginAsset' => [
'sourcePath' => '@npm/bootstrap/dist'
]
]
]
]
请注意,yii2-bootstrap4
尚未准备好使用,甚至没有 alpha/beta 版本,因此预计会出现许多其他问题。
很多关于如何在 Yii2 中使用 Bootstrap 4 的解决方案。甚至 Yii2 团队也为此创建了一个 extension。但是因为,我不喜欢太多的配置。这就是我所做的。在 AppAsset.php 中,删除 yii\bootstrap\BootstrapAsset 并自定义。我会建议,您坚持使用原始文件名和类名。
// AppAsset.php
public $depends = [
'yii\web\YiiAsset',
//'yii\bootstrap\BootstrapAsset', // Remove this
'app\assets\BootstrapAsset', // Add this
];
然后,我在 assets 文件夹中创建了一个 BootstrapAsset.php 文件。从 yii\bootstrap\BootstrapAsset 复制代码。然后更改了部分代码。没有 NPM,没有 Bower。
namespace app\assets;
use yii\web\AssetBundle;
class BootstrapAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'vendor/bootstrap/css/bootstrap.min.css'
];
public $js = [
'vendor/bootstrap/js/bootstrap.min.js',
'vendor/popper.js/umd/popper.min.js'
];
}