2021-08-25 19:25:10 +03:00
fix
2021-08-25 19:25:10 +03:00
fix
2021-08-24 20:50:49 +03:00
fix
2021-08-25 17:12:19 +03:00
2021-08-14 11:29:21 +00:00
fix
2021-08-25 19:25:10 +03:00

wt.core assets source Build Status

is a dependency wt.core Build Status

Предназначен для асинхронной работы с ресурсами на веб-проектах.

Термины и определения в контексте фреймворка

Плагин - сущность включающая в себя модуль, js-, css-файлы, шрифты.

Модуль - составляющая плагина, определяемая как основной файл плагина (его наличие не обязательно в плагине)

PluginManager - класс для работы с плагинами

Базовые принципы

✨ Инициализация

Выдержка из плагина core

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.

Пример вызова

kit.$
kit.jquery

✨ Основные этапы работы с плагином:

этап метод
Регистрация registerPlugin(pluginId, config) или registerPlugins(object)
Загрузка load(pluginId, callback)
Установка install(pluginId, callback)
Запрос require(pluginId, callback)

Пример конфигурации

kit.PluginManager.register('menu', {
        path: kit.config.defaultPath + '/menu',
        module: '/menu.js',
        type: 'loader',
        css: [
            '/menu.css'
        ],
        deps: ['lib', 'align', 'utils']
    }
);

Описание параметров конфига для плагина

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

Использование

Запуск исполняемого кода после установки зависимостей:

PluginManager.exec(deps, callback, argArr, context)

Запуск исполняемого кода после установки зависимостей и при загруженной странице:

PluginManager.ready(deps, callback)

kit.config.requiredDependencies определяет зависимости (deps) по умолчанию

Глобальный конфиг

Параметры определяются в плагине config

Параметры допустимо определять до загрузки PluginManager

name default description
defaultPath /local/templater.dev/kit/assets
requiredDependencies ['bsCore', 'toolkit'] дополнительно определяет список зависимостей для любого колбека вызванного функциями exec и ready
autoloadPluginList ['tooltip'] Автоматически загрузит ресурсы указанных плагинов. В случае модуля с типом loader код не будет исполнен сразу после загрузки. Исполнение бдует определятся функций install
debug false Расширит список выводимой в консоль информации

z-index map

z-index plugin selector
100 flex-kit .flex-card:hover .flex-card__content

Установка

В директории определенной в config.defaultPath выполнить

git clone https://bellord@bitbucket.org/bellord13/kit.git ./

License

MIT

S
Description
No description provided
Readme
4.7 MiB
Languages
JavaScript 78.9%
CSS 9.3%
PHP 7.8%
Hack 3.5%
HTML 0.3%
Other 0.2%