Как добавить пакет SPFX размером более 100 МБ? - PullRequest
0 голосов
/ 05 ноября 2018

Я занимаюсь разработкой приложения SPFX (SharePoint Framework) для SharePoint в Интернете с использованием React JS. Все было хорошо до тех пор, пока размер моего приложения не превысил 100 МБ. Теперь, хотя я могу загрузить приложение на свой сайт каталога приложений, я не могу обновить приложение в своем семействе сайтов. Когда я пытаюсь, я получаю следующую ошибку:

поток пакета превышает максимально допустимую длину в 104857600 байт

Я использую команды Gulp Bundle -ship и Gulp package-solution --ship для упаковки моего решения. Есть ли более эффективный способ упаковки для производства? Может быть, подход, при котором файл пакета не становится таким большим?

1 Ответ

0 голосов
/ 08 ноября 2018

После нескольких часов проб и попыток, нашел это решение, которое решает проблему. Ответ на оригинальный вопрос до сих пор неизвестен, т.е. я не узнал, как добавить приложение размером более 100 МБ. Но я нашел решение, почему приложение занимало более 100 МБ. Делитесь им, чтобы он мог помочь таким, как я, начинающим разработку React SPFX.

Выпуск

В моем проекте абсолютно нет медиа-файлов (нет изображений, нет видео). Таким образом, было удивительно, что размер пакета составил более 100 МБ. У меня было более 25 компонентов и 5 веб-частей. Я обычно запускаю свой верстак (используя Gulp Serve) и продолжаю вносить изменения, пока он не будет готов к сборке. Затем я останавливаю Gulp Serve и запускаю команды сборки (Gulp Bundle -ship & Gulp Package-Solution --Ship). Он увеличивает размер файла .sppkg при каждой сборке. Это также добавляет значительную задержку при загрузке и проверке приложения в магазине приложений (почти 10 минут в худшем случае). И затем, когда пакет пересекает 100 МБ, вы больше не можете обновлять его в своем семействе сайтов.

Решение

Я случайно наткнулся на "Gulp Clean" и подумал попробовать. Я запустил его до того, как мои команды сборки и вуаля! Пакет, который был 100 МБ всего несколько минут назад, теперь был 1,3 МБ (очевидно, поскольку все, что содержит мое решение, это файлы .ts, .tsx и .scss). Теперь обновление моего приложения в магазине приложений занимает не более минуты.

Так что я создал bat-файл для сборки своего пакета каждый раз, когда мне нужно. Содержимое файла bat выглядит так:

call gulp clean
call gulp bundle -ship
call gulp package-solution --ship

Дополнительный справочник

Я нашел это сообщение от Waldek Mastykarz слишком поздно. Хотя причины использования «Чистого» в его посте отличались от моих, это сэкономило бы мне несколько часов, если бы я видел это немного раньше.

Внимание

Я все еще детально изучаю Gulp Clean и не могу точно сказать, нет ли у него побочных эффектов.

...