Skip to content

Commit 656da40

Browse files
Copilotnixel2007
andcommitted
Fix transitive dev dependencies installation issue
Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com>
1 parent 9737adf commit 656da40

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

src/core/Классы/МенеджерУстановкиПакетов.os

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
Перем УстанавливатьЗависимости;
1919
Перем УстанавливатьЗависимостиРазработчика;
2020
Перем СоздаватьФайлыЗапуска;
21+
Перем УровеньЗависимости;
2122

2223
// BSLLS:NumberOfOptionalParams-off
2324
Процедура ПриСозданииОбъекта(Знач ВходящийРежимУстановкиПакетов = Неопределено,
@@ -63,6 +64,7 @@
6364
УстанавливатьЗависимостиРазработчика = Ложь;
6465
СоздаватьФайлыЗапуска = Истина;
6566
ИмяСервера = ВходящийИмяСервера;
67+
УровеньЗависимости = 0;
6668
КонецПроцедуры
6769

6870
Процедура УстанавливатьЗависимости(Знач ПУстанавливатьЗависимости) Экспорт
@@ -77,6 +79,10 @@
7779
СоздаватьФайлыЗапуска = ПСоздаватьФайлыЗапуска;
7880
КонецПроцедуры
7981

82+
Процедура УстановитьУровеньЗависимости(Знач Уровень) Экспорт
83+
УровеньЗависимости = Уровень;
84+
КонецПроцедуры
85+
8086
Процедура УстановитьРежимУстановкиПакетов(Знач ЗначениеРежимУстановкиПакетов) Экспорт
8187

8288
ТекущийРежимУстановкиПакетов = ЗначениеРежимУстановкиПакетов;
@@ -114,11 +120,17 @@
114120
Процедура УстановитьПакетПоОписанию(Знач ЗависимостьПакета) Экспорт
115121

116122
Если ЗависимостьПакета.ДляРазработки Тогда
117-
Если УстанавливатьЗависимостиРазработчика Тогда
123+
// Зависимости разработчика устанавливаются только на первом уровне (УровеньЗависимости = 0)
124+
Если УстанавливатьЗависимостиРазработчика И УровеньЗависимости = 0 Тогда
118125
Лог.Отладка("<%1> отмечена как зависимость для разработчика. Устанавливаем.", ЗависимостьПакета.ИмяПакета);
119126
Иначе
120-
Лог.Отладка("<%1> отмечена как зависимость для разработчика, " +
121-
"но установка зависимостей для разработчика не активирована. Пропускаем.", ЗависимостьПакета.ИмяПакета);
127+
Если УровеньЗависимости > 0 Тогда
128+
Лог.Отладка("<%1> отмечена как зависимость для разработчика, " +
129+
"но это транзитивная зависимость (уровень %2). Пропускаем.", ЗависимостьПакета.ИмяПакета, УровеньЗависимости);
130+
Иначе
131+
Лог.Отладка("<%1> отмечена как зависимость для разработчика, " +
132+
"но установка зависимостей для разработчика не активирована. Пропускаем.", ЗависимостьПакета.ИмяПакета);
133+
КонецЕсли;
122134
Возврат;
123135
КонецЕсли;
124136
КонецЕсли;
@@ -173,8 +185,21 @@
173185

174186
Процедура УстановитьПакетПоИмениИВерсии(Знач ИмяПакета, Знач ВерсияПакета, ЗНач ЭтоЗависимыйПакет = Ложь) Экспорт
175187

176-
ФайлПакета = РаботаСПакетами.ПолучитьПакет(ИмяПакета, ВерсияПакета, , ИмяСервера);
177-
УстановитьПакетИзАрхива(ФайлПакета, ЭтоЗависимыйПакет);
188+
Если ЭтоЗависимыйПакет Тогда
189+
// Для зависимых пакетов увеличиваем уровень зависимости
190+
НовыйМенеджер = Новый МенеджерУстановкиПакетов(ТекущийРежимУстановкиПакетов, ЦелевойКаталогУстановки, КаталогУстановкиЗависимостей, ИмяСервера);
191+
НовыйМенеджер.УстанавливатьЗависимости(УстанавливатьЗависимости);
192+
НовыйМенеджер.СоздаватьФайлыЗапуска(СоздаватьФайлыЗапуска);
193+
// Для транзитивных зависимостей отключаем установку зависимостей разработчика
194+
НовыйМенеджер.УстанавливатьЗависимостиРазработчика(Ложь);
195+
НовыйМенеджер.УстановитьУровеньЗависимости(УровеньЗависимости + 1);
196+
197+
ФайлПакета = РаботаСПакетами.ПолучитьПакет(ИмяПакета, ВерсияПакета, , ИмяСервера);
198+
НовыйМенеджер.УстановитьПакетИзАрхива(ФайлПакета, Ложь);
199+
Иначе
200+
ФайлПакета = РаботаСПакетами.ПолучитьПакет(ИмяПакета, ВерсияПакета, , ИмяСервера);
201+
УстановитьПакетИзАрхива(ФайлПакета, ЭтоЗависимыйПакет);
202+
КонецЕсли;
178203

179204
КонецПроцедуры
180205

0 commit comments

Comments
 (0)