mirror of
https://bitbucket.org/bellord13/kit.git
synced 2026-11-13 19:06:11 +03:00
fix
This commit is contained in:
@@ -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
|
```js
|
||||||
kit.PluginManager.registerPlugin('menu', {
|
kit.PluginManager.register('menu', {
|
||||||
path: kit.config.defaultPath + '/menu',
|
path: kit.config.defaultPath + '/menu',
|
||||||
module: '/menu.js',
|
module: '/menu.js',
|
||||||
type: 'loader',
|
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)
|
PluginManager.exec(deps, callback, argArr, context)
|
||||||
```
|
```
|
||||||
|
|
||||||
Запуск исполняемого кода после установки зависимостей и при загруженной странице:
|
Запуск исполняемого кода после установки зависимостей и при загруженной странице:
|
||||||
|
|
||||||
```sh
|
```js
|
||||||
PluginManager.ready(deps, callback)
|
PluginManager.ready(deps, callback)
|
||||||
```
|
```
|
||||||
> `kit.config.requiredDependencies` определяет зависимости (deps) по умолчанию
|
> `kit.config.requiredDependencies` определяет зависимости (deps) по умолчанию
|
||||||
@@ -76,23 +121,13 @@ PluginManager.ready(deps, callback)
|
|||||||
| 100 | flex-kit | .flex-card:hover .flex-card__content |
|
| 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
|
## License
|
||||||
|
|||||||
@@ -30,28 +30,6 @@ window.kit = window.kit || {};
|
|||||||
|
|
||||||
var __proto = PluginManager.prototype;
|
var __proto = PluginManager.prototype;
|
||||||
|
|
||||||
__proto.__manual = function(){
|
|
||||||
return {
|
|
||||||
config: {
|
|
||||||
type: {
|
|
||||||
import: 'Значение по умолчанию. Нативный загрузчик модулей. Файл модуля содержит ключевые фразы "export" и "export default"',
|
|
||||||
loader: 'Файл модуля содержит функцию kit.PluginManager.register(pluginId, function(module, exports, require){})',
|
|
||||||
},
|
|
||||||
alias: 'тип Array|string. Список ключей, которые могут быть использованы вместо pluginId, как и в require() так и в global',
|
|
||||||
import: 'тип string. Ссылка на файл с модулем',
|
|
||||||
loader: 'Используется для загрузки модулей типа loader',
|
|
||||||
deps: 'тип Array|string. Зависимости, Id плагинов.',
|
|
||||||
css: 'тип Array|string. Массив путей к стилям. Стили грузятся синхронно при загрузке плагина. Без событий',
|
|
||||||
js: 'тип Array|string. Массив путей к скриптам. Загрузка идет по цепочке. Для синхронной загрузки скрипты ложатся в массив. пр: [1.js, [1.1.js, 1.2.js]]',
|
|
||||||
loadJsAfterModule: 'определяет порядок загрузки скриптов и модуля',
|
|
||||||
onInstall: 'функция выполняемая после установки плагина (однократно)',
|
|
||||||
onLoad: 'функция выполняемая после загрузки плагина (однократно)',
|
|
||||||
path: 'префикс пути для модуля, скриптов и стилей',
|
|
||||||
modulePath: 'префикс пути для модуля. если не указан, то берется config.path',
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}();
|
|
||||||
|
|
||||||
__proto.__checkState = function(pluginId, state){
|
__proto.__checkState = function(pluginId, state){
|
||||||
return this.plugins.hasOwnProperty(pluginId) && this.plugins[pluginId].state >= state;
|
return this.plugins.hasOwnProperty(pluginId) && this.plugins[pluginId].state >= state;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user