Отключение тряски деревьев - PullRequest
0 голосов
/ 17 мая 2018

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

Для поддержки этого мы не можем потрясти дерево основного приложения, поскольку эти пользовательские библиотеки могут использовать символы из сторонних библиотек (например, angular, rxjs), которых основное приложение не поддерживает.

Каким образом можно решить эту проблему с помощью angular-cli v6? Есть ли способ отключить тряску деревьев в производственной сборке?

1 Ответ

0 голосов
/ 17 мая 2018

Я думаю, что процесс встряхивания дерева является частью функции сборки AOT angular-cli, но сама документация не дает много информации о том, как именно это делается и какую погоду вы можете включить или нет./ отключить эту функцию.Насколько я понимаю, нет простого способа просто отключить дрожание дерева в angular-cli. cli документация гласит следующее:

Все сборки используют связывание и ограниченное встряхивание дерева, в то время как сборки --prod также запускают ограниченное удаление мертвого кода через UglifyJS.

Так что, похоже, это в значительной степени связано с AOT.Отключение встряхивания дерева, вероятно, также противоречит тому, что angular-cli пытается достичь с помощью своих вариантов сборки в течение последнего года или около того, главным образом, чтобы сделать его простым в использовании инструментом для уменьшения размеров связки angular.

Angular-cli предоставляет несколько опций для настройки здания, но для части, где трясется дерево, я думаю, вам либо придется как-то пойти с этим, либо, если это невозможно, вам, вероятно, придется копать намного глубже и пытаться создать свой собственныйпостроить с чем-то вроде веб-пакета (который я думаю, что клиент использует под капотом).Вы можете настроить почти все там.Эта свобода, конечно же, сопровождается затратами на увеличение времени, необходимого для создания эффективной сборки, сравнимой с командой build angular.

...