Обновить
107
Кирилл Коншин@dfuse

Principal Software Developer

40
Подписчики
Отправить сообщение
Tobias Sokra, если честно больше похожа на выкрик, импорты плохо, а вот наша штука лучше

Полифил непринятого стандарта — это стремно. Вебпак давно зарекомендовавший себя инструмент, так что автор прав, ни одна серьезная компания на импорт-мапы пока не подпишется.


Использование es модулей подразумевает под собой использование http2, server push и тому подобное

Про HTTP2 я еще у себя в статье писал.


худшее сжатие, вы про tree shaking?

Крупные куски сжимаются лучше чем много мелких.


если я правильно понял как работает Module Federation

Не правильно, см презентацию https://github.com/sokra/slides/blob/master/content/ModuleFederationWebpack5.md — это живая система, а не "хоровой деплоймент".


да читал, и решения засорять глобальную область видимость через сервисворкер так себе

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


в вашем случае получаеться аффектиться сборка основного приложения с зависимостями

Вовсе нет. Хост разглашает, что у него есть, приложения — что нужно им и что есть у них, все это максимально развязано. В крайнем случае скачается несколько раз.

Процитирую разработчика Webpack — Tobias Sokra:


No billion or trillion dollar company will use that. Import maps will realistically take 5 years to gain enough browser support to be used. It's like depending on polyfills to things that do not exist. Production code depends on a shim ultimately worse perf. Even when import maps come out, so what. Something still needs to append them to the page. Who cares if its script or something else, webpack will still need to manage it at scale and you still need tree-shaking. Plus import maps only “share”code if the path is exactly the same. Making it still no good and not near a replacement.

Еще добавлю отсутствие версионирования зависимостей, поддержку только JS модулей (без CSS и тд), повышенную нагрузку на сеть по кол-ву запросов и худшее сжатие. У меня была статья https://habr.com/ru/post/474672/ — import maps еще очень далеко до реального применения.

Я и говорю, повезло. А может и не повезти. Я регулярно встречаю странные поставки без ES6 и в UMD без бандла...


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

Да, читаю, я отредактировал коммент, вы правы, а я нет (по части переписывания путей)


Во-вторых, UMD — это формат самодостаточного бандла, готового к подключению на страницу тэгом script

Это не так. UMD — обертка, она может иметь прописанные package identifiers и обращения к global scope в качестве фоллбэка.


UMD не равно bundle со всеми зависимостями. Реакт же не отрезолвился вообще https://unpkg.com/react@16.12.0?module (ссылка сгенеренная Unpkg). А Вы читаете, что вам пишут? )))

wipe я был не прав, Unpkg все перепишет https://unpkg.com/next-redux-wrapper@4.0.1/es6/index.js?module, но реакт распространяется как UMD, он несовместим с import=module: https://unpkg.com/react@16.12.0?module и привет… следовательно любой другой пакет потенциально может так отпасть, следовательно нет никакой уверенности (((


Вы читали статью мою, которую я выше кинул? Там все это описано.


Статью спасает что топ левел реакт как скрипт прописан...

Спасибо! Удивительно насколько различается кол-во пришедших читать пост, подача — важно )))

Физически код зависимости как попадет на страницу? Вот вы например запросили пакет с A, прописали его:


<script type="application/javascript" src="https://unpkg.com/a@1.0.0/a.production.min.js"></script>


А он в свою очередь потянет еще что-то. Не все ж пакеты как реакт несут в себе полную сборку, некоторые еще что-то требуют. И далее по цепочке. Как это разруливать?

Так а скрипт то сам как будет грузиться? Он какой то добавочный код подсунет чтоб тег script приземлить на страницу? По-моему он дальше чем текстовая замена не идет и в рантайме ничего не делает особого.

Да, но допустим он размотает import Foo from 'foo' в const Foo = window.Foo или как он там это делает, но файл то кто будет грузить? Я руками? В index.html все все все прописывать? А что если это зависимость зависимости и тд?

Не получится. Т.к. импорты надо переписывать. https://habr.com/ru/post/474672/ я поступил так.

А как насчет использования библиотек? ;)
Я дальше пошел и преобразования в воркер засунул: https://habr.com/ru/post/474672/

То есть у меня было 2 дня чтоб отреагировать? Мда… а ведь я бы хотел поучаствовать, как раз недавно статью публиковал.

А как насчет Kaniko? Он быстрее.

15 ноября пришел емейл, что мол заявки еще принимаются, первый раз, до этого тишина, пару дней назад я пошел смотреть https://contenting.io/challenge.html — формы нет.

Строго говоря да :) но анимации не такие уж прям халтурные, справедливости ради.

Нормально работает. Выбирая между выкатить новую бизнес-функцию или "идеально разворачивающееся меню" почти во всех реальных бизнес случаях бизнес выберет функцию. Если это не какое-то критически важное место в системе, без которого ну совсем никак. Кода 10 строк, ломаться нечему, работает более менее — норм же. Не идеально, а приемлемо.


https://easings.net/en можно еще функцию подобрать более подходящую

А где форма для 2019 года?

Это же экспериментальный проект, работающий с тем, что есть. Все же в статье написано, хотите не загрязнять — есть проект react-esm, но он не обновляется. Ну либо ждать надо пока сами ребята из Реакта выдадут нормальную сборку.

Отвратительно… это супер древний проект, сейчас есть code climate, appveyor и тд. У SQ сборщик данных JS/TS лежащий в NPM требует Java (sic!!!). Они реально JAR файл распространяют… Это провал. Но on-premise решений мало, так что приходится страдать.

Информация

В рейтинге
Не участвует
Откуда
San Francisco, California, США
Дата рождения
Зарегистрирован
Активность