объединение пакетов и зависимости - PullRequest
0 голосов
/ 23 апреля 2020

Мы строим несколько библиотек, используя свертку, и между библиотеками есть зависимости.

например, мы создаем библиотеку A, которая определяет несколько классов.

класс экспорта Foo {..}

Библиотека B реализует классы расширения библиотеки A. Например,

import {Foo} из класса 'A'. Bar расширяет Foo {..}

Библиотека C использует instanceof для проверки экземпляров классов в библиотеке A.

import {Foo } from 'A'

if (экземпляр Foo) ... do stuff

Некоторое веб-приложение затем загружает A, B и C, потому что оно должно взаимодействовать с классами, определенными в все 3 библиотеки. Мы создаем коллекцию приложений, использующих нашу библиотеку инструментов.

Проблема в том, что библиотека A обновляется каким-либо образом. Даже небольшая ошибка исправлена. Библиотеки B и C также должны быть переизданы, иначе что-то пойдет не так. Я думаю, что накопительный пакет выполняет загрузку класса A несколько раз, по одному разу для каждой найденной сборки. Только если все сборки идентичны , он загрузит только одну.

Это приводит к ужасному сбою в работе всего. Наше решение состоит в том, чтобы постоянно переиздавать все зависимые библиотеки, когда освобождается любая библиотека, но это является бременем и вызывает массу лишних выпусков на зависимых библиотеках.

В любом случае, можно ли сделать сводку чуть более прощающей, как отслеживать зависимости? в идеале незначительные обновления патчей можно считать одинаковыми и не приводить к многократной загрузке библиотеки в память.

...