Я создал проект семян с угловым 2 (RC.1) и системой JS. Я хотел создать статический единый комплект для производства и расслоения всего, кроме моего собственного кода для разработки. Это был мой обычный поток в прошлом, прежде чем использовать systemjs. После комплектации с Глоток-JSPM/systemjs-строитель файл пакет был больше, чем 2 MB (источник) или 1,2 MB (уменьшенная). Поскольку это выглядело слишком большим, я дважды проверял использование простого jspm CLI, но размер файла был таким же.Имеет ли смысл связывание в systemjs
Команда была использована для режима Dev:
jspm bundle app/bootsrap - [path/to/app/**/*] mybundlename.js --inject
Или для производства:
jspm bundle app/bootstrap mybundlename.js
Имея 1,2 MB файл на производстве кажется слишком большой, если я хочу, например, для запуска моего веб-приложения в мобильных браузерах с ограниченной пропускной способностью. Специально, поскольку это был набор с почти без кода (только файл начальной загрузки и основной компонент приложения). Мои пакеты приложений Angular 1.5 обычно составляли около 700 КБ для довольно крупных корпоративных приложений.
Посмотрев на комплект, я понял, что в комплекте имеется 540 файлов. Я почти уверен, что мне не нужна большая часть из них.
Полный файл config.js можно найти здесь: https://plnkr.co/edit/BhYy5Pu1QbmYJ7Ph5rBO.
Итак, наконец, мои вопросы:
- Если файлы в комплекте при использовании systemJS в проекте, или я должен просто оставить их, и пусть разделены systemJS заботиться о отложенной загрузки?
- Если связка рекомендуется, как я могу создать пакет, который имеет разумный размер и включает в себя только файлы, от которых на самом деле зависит мое приложение?
Вы должны подумать о том, будет ли ваша заявка использовать * все * большую часть времени (что приведет к более дешевому обложению), или если это в основном просто частичное использование всех ваших источников (в этом случае ленивая загрузка может быть дешевле). Вы даже можете сходить с ума и создать несколько пакетов, а затем сконфигурировать systemjs для ленивой загрузки этих пакетов для определенных модулей. – poke
Ну, вот где это получается сложно.Единственное, что я добавил в конфигурацию systemjs, - это угловое ядро, http, router, plaftorm-browser-dynamic, ng2-translate, rxjs, zone.js и метаданные отражения. Все это необходимо для запуска приложения. Тем не менее, я не знаю, какие части этих пакетов мне нужны (какие JS-файлы) и пакет, кажется, собирают каждый файл. Вы можете увидеть полный список в плункере. –
Кажется, что угловой 2 все еще работает над этим: https://github.com/angular/angular/issues/7793#issuecomment-202653154 –