An extension provides behavior which allows to process js files, code and asset bundles by various js loaders such as RequireJS.
Along with behavior it provides a set of interfaces and base classes for implementing a js loader.
Currently available implementations of js loaders are:
*Requires PHP >= 7.1
The preferred way to install this extension is through composer.
Either run
composer require ischenko/yii2-jsloader
or add
"ischenko/yii2-jsloader": "*"
to the require
section of your composer.json.
Add the behavior and concrete loader implementation to a view configuration
...
'components' => [
...
'view' => [
'as jsLoader' => [
'class' => 'ischenko\yii2\jsloader\Behavior',
'loader' => [
'class' => 'loader\namespace\LoaderClass'
]
]
]
...
]
...
By default the loader skips scripts and bundles/files located in the head section,
but if you need to include those scripts or exclude another section(s) you can do this via ignorePositions
property:
...
'components' => [
...
'view' => [
'as jsLoader' => [
'class' => 'ischenko\yii2\jsloader\Behavior',
'loader' => [
'class' => 'loader\namespace\LoaderClass',
'ignorePositions' => [
View::POS_HEAD,
View::POS_BEGIN
]
]
]
]
...
]
...
Additionally you can set a list of an asset bundles that should be ignored by the loader via ignoreBundles
property:
...
'components' => [
...
'view' => [
'as jsLoader' => [
'class' => 'ischenko\yii2\jsloader\Behavior',
'loader' => [
'class' => 'loader\namespace\LoaderClass',
'ignoreBundles' => [
'app\assets\AppCssAsset'
]
]
]
]
...
]
...