ischenko / yii2-jsloader
An Yii2 extension designed to handle JS files, code and asset bundles via various js loaders
Package info
github.com/ischenko/yii2-jsloader
Type:yii2-extension
pkg:composer/ischenko/yii2-jsloader
Requires
- php: >=7.1
- yiisoft/yii2: ~2.0
Requires (Dev)
- codeception/assert-throws: ~1.0
- codeception/codeception: ~4.0
- codeception/module-asserts: ~1.1
- codeception/specify: ~1.2
- codeception/verify: ~1.2
Suggests
- ischenko/yii2-jsloader-systemjs: SystemJS loader
Provides
None
Conflicts
None
Replaces
None
README
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:
Installation
*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.
Usage
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' ] ] ] ] ... ] ...