*Не считая retail-ui
Легко!
Легко!
core
http
logging
topology
dtrace
Клиенты ко всем сервисам
cement
clusterconfig
cluster-client
libapi
....
4x jquery
3x toolbox + plugin jsapi
4x polyfill
4x fonticon.eot
2x bem
4x react + retail-ui
3x axios
3x bluebirdjs
....
1. Простая и эффективная встройка в веб-приложения
2. Автоматическое тестирование
3. Версионность
4. Отдельный независимый деплой
5. Модульность. Синхронная и асинхронная
6. Оптимальная стратегия кэширования
7. Простое добавление дополнительных модулей
8. Возможность гибко конфигурировать и заменять сущности
9. Подробное клиентское логирование с сохранением на сервер
[
{
"http":{
"1.1":{
"js":[
"https://cdn.skbkontur.ru/http/1.1/js"
]
}
},
"retail-ui":{
"1.5":{
"js":[
"https://cdn.skbkontur.ru/retail-ui/1.5/js"
],
"css":[
"https://cdn.skbkontur.ru/retail-ui/1.5/css"
]
}
}
}
]
interface IKModules {
define<TModule>(moduleName: string,
config: IModuleConfiguretion,
factory: (modules: IKModuleManager) => TModule | Promise<TModule>);
}
interface IKModuleManager {
require<TModule>(moduleName: string): Promise<TModule>;
}
plugins: [
new KModlePlugin({
name: "keweb",
version: "1.0.0",
entry: "./index.ts"
})
]
externals: {
"retail-ui": "ModuleManager.retail-ui.100"
}
Синхронные зависимости
Асинхронные зависимости
import ModuleManager from "ModuleManager"
import Container from "DI"
ModuleManager.require('extern-api').then(()=> {
var fnsDcCreator = Container.get<FnsDcCreator>();
fnsDcCreator.create(...);
});
Сборка модуля