我想在 Yii2 中使用不同的 js 文件进行开发和生产模式。开发模式有很多未缩小的文件,尽管生产将只有一个文件。
开发资产如下所示:
namespace frontend'assets;
use yii'web'AssetBundle;
class AppAsset extends AssetBundle {
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/main.css',
];
public $js = [
'js/app/_variables.js',
'js/app.js',
'js/app/_api_conn.js',
'js/app/_docCookies.js',
'js/app/ ..... .js',
];
public $depends = [
'yii'bootstrap'BootstrapPluginAsset',
];
}
我希望在生产模式下拥有这样的特定捆绑包,已经在本地合并和缩小:
namespace frontend'assets;
use yii'web'AssetBundle;
class AppAsset extends AssetBundle {
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/main.css',
];
public $js = [
'js/wfapp_all_min.js',
];
public $depends = [
'yii'bootstrap'BootstrapPluginAsset',
];
}
正如 Yii2 文档所解释的那样,有一种方法可以做到这一点,但我找不到在哪里添加它(该示例适用于 jquery 资产,但似乎也适用于我的情况):
'yii'web'JqueryAsset' => [
'js' => [
YII_ENV_DEV ? 'jquery.js' : 'jquery.min.js'
]
],
那么实现这一点的正确方法是什么?提前感谢!
如果调试服务器和生产服务器的文件数量不同,您可以在初始化期间在 init() 方法中设置它们:
public function init()
{
$this->js = !YII_DEBUG ? ['js/wfapp_all_min.js'] : [
'js/app/_variables.js',
'js/app.js',
'js/app/_api_conn.js',
'js/app/_docCookies.js',
'js/app/ ..... .js',
];
parent::init();
}
不要忘记在最后调用父实现。