Yiiスクリプトパッケージの依存関係機能を使用できます。以前も同様の問題がありました。
たとえば、次のようなスクリプトパッケージ構成があります。
'clientScript' => array(
'packages' => array(
'package1' => array(
'basePath' => 'path.to.package1',
'js' => array(
'package1.js',
),
'css' => array(
'package1.css'
),
),
'package2' => array(
'basePath' => 'path.to.package2',
'js' => array(
'package2.js',
),
'css' => array(
'package2.css'
),
'depends' => array(
'package1',
)
),
'package3' => array(
'basePath' => 'path.to.package3',
'js' => array(
'package3.js',
),
'css' => array(
'package3.css'
),
'depends' => array(
'package2',
)
),
)
)
上記のサンプルでは、package2requires(依存)package1およびpackage3requires package2。あなたの場合、ウィジェットがを使用package2し、他のスクリプトがを使用するとしますpackage3。ウィジェットをレンダリングしない場合でも、を使用すると、ウィジェットYii::app()->clientScript->registerPackage('package3');が自動的にインストールされ、以前にインストールされます(または、以前に一部のスクリプトで既に必要な場合はインストールされませんpackage2)。package1package2package1