но некоротые зависят от других аддонов
сейчас делается сборка простой конкатенацией аддонов, а все зависимости "в голове"
реально ли заменить сборку конкатенацией на import-export при этом автоматически учитывать зависимости и избегать дублирования?
Ну так просто импорты/экспорта и юзай в чем проблема? Главное чтобы циклических зависимостей небыло
цикличиских само собой не будет, проблема в повторных зависимостях
Так это не проблема же, зависимость подключается один раз не зависимо от количества импортов. При первом импорте она инициализируется, при последующих импорт будет возвращать ссылку на объект зависимости.
если приложение будте выглядеть так: import Core from "core"; import Addon1 from "addon1"; import Addon2 from "addon2"; Core.setAddons(Addon1, Addon2); /* и собственно код*/ то как лучше организовать addon1 и addon2 если они включают addon0 ?
Импортировать дважды аддон0, внутри аддон1 и внутри аддон2, ну и setAddons тоже 2 раза делать надо, внутри аддднов 1 и 2. Ну только в сетАдонс проверку добавить что аддон подключен уже
проверку в стиле сишных #ifdef?
Нет, у тебя же аддоны в массиве хранятся я так понял? Так вот проверь что в массиве есть объект аддона. Мне кажется ты не до конца понял про импорты. Сколько бы не было импортов в приложении файл с зависимостью исполняется только при первом вызове импорта, результат исполнения записывается в обьект. При последующих импортах возвращается только этот объект без повторного исполнения кода. Ты можешь просто проверить добавил ли ты уже аддон в коллекцию, т.к. у каждого импорта будет одна и та же ссылка на объект Import aaa from 'dep' // dep инициализируется и запишется в ааа Import bbb from 'dep' // деп уже инициализирован, просто запишется ссылка на него в ббб Bbb === aaa //вернёт true, даже в разных файлах
каждый аддон при добавлении модифицирует ядро, вот именно повторной модификации надо избежать, при этом сделать это понятным и очевидным способом
Ну при добавлении аддона сделай проверку на то модифицировал он ядро или нет
покачто придумал держать в ядре Set со строковыми названиями(скорее ссылками) аддонов и при добавлении так проверять их наличие
Да, я тебе выше как раз про это писал, только я там про массив писал
Обсуждают сегодня