This commit is contained in:
2021-08-25 19:25:10 +03:00
parent a45df1373e
commit 8ba8d3a915
2 changed files with 54 additions and 41 deletions
+54 -19
View File
@@ -14,7 +14,32 @@
## Базовые принципы
Основные этапы работы с плагином:
✨ Инициализация
> Выдержка из плагина `core`
```js
manager = new PluginManager(global, plugins = {});
manager.register('PluginManager', {
alias: 'pm',
type: moduleTypeList.loader,
loader: function(module, exports, require, global) {
// return определяет, что выкинуть во внешку
return module.exports = manager;
}
});
manager.install('PluginManager');
```
Создается экземпляр класса PluginManager и регистрирует сам себя.
Переменная `global` выполняем роль фасада для все установленных плагинов с допустимостью использования `alias`. Это позволит использовать функционал вне ядра. В качестве глобальной переменной используется `window.kit`.
Пример вызова
```js
kit.$
kit.jquery
```
✨ Основные этапы работы с плагином:
| этап | метод |
| ------ | ------ |
@@ -26,8 +51,8 @@
## Пример конфигурации
```sh
kit.PluginManager.registerPlugin('menu', {
```js
kit.PluginManager.register('menu', {
path: kit.config.defaultPath + '/menu',
module: '/menu.js',
type: 'loader',
@@ -39,17 +64,37 @@ kit.PluginManager.registerPlugin('menu', {
);
```
## Описание параметров конфига для плагина
| name | value | description |
| --- | --- | --- |
| type | import | Значение по умолчанию. Нативный загрузчик модулей. Файл модуля содержит ключевые фразы "export" и "export default" |
| | loader | Файл модуля содержит функцию `kit`.`PluginManager`.`register`(`pluginId`, function(`module`, `exports`, `require`, `global`){}) |
| | | |
| alias | Array string | Список ключей, которые могут быть использованы вместо pluginId, как и в require() так и в global |
| | | |
| import | string | Ссылка на файл с модулем |
| loader | | Используется для загрузки модулей типа loader |
| deps | Array string | Зависимости, Id плагинов |
| css | | Массив путей к стилям. Стили грузятся синхронно при загрузке плагина. Без событий |
| js | | Массив путей к скриптам. Загрузка идет по цепочке. Для синхронной загрузки скрипты ложатся в массив. пр: [1.js, [1.1.js, 1.2.js]] |
| loadJsAfterModule | bool | default: false. Определяет порядок загрузки скриптов и модуля |
| onInstall | callback | функция выполняемая после установки плагина (однократно) |
| onLoad | callback | функция выполняемая после загрузки плагина (однократно) |
| path | string | префикс пути для модуля, скриптов и стилей |
| modulePath | string | префикс пути для модуля. если не указан, то берется config.path |
## Использование
Запуск исполняемого кода после установки зависимостей:
```sh
```js
PluginManager.exec(deps, callback, argArr, context)
```
Запуск исполняемого кода после установки зависимостей и при загруженной странице:
```sh
```js
PluginManager.ready(deps, callback)
```
> `kit.config.requiredDependencies` определяет зависимости (deps) по умолчанию
@@ -76,23 +121,13 @@ PluginManager.ready(deps, callback)
| 100 | flex-kit | .flex-card:hover .flex-card__content |
✨ Magic ✨
> The overriding design goal for Markdown's
> formatting syntax is to make it as readable
> as possible. The idea is that a
> Markdown-formatted document should be
> publishable as-is, as plain text, without
> looking like it's been marked up with tags
> or formatting instructions.
## Установка
В директории определенной в `config.defaultPath` выполнить
```bash
git clone https://bellord@bitbucket.org/bellord13/kit.git ./
```
## License