Size: a a a

Webpack — русскоговорящее сообщество

2020 September 18

A

Alex CherryTea in Webpack — русскоговорящее сообщество
process.exit(‿|‿)
не ну если ты считаешь что грузить одни и те же картинки и прочую хрень на внешних ресурсах надо заново клиентам - то дело твое) можешь и выстрелить себе в голову 😉
но как твой последний комментарий относится к сути заданных вопросов я ума не приложу 🤷🏻‍♂️
Не это я просто офигиваю.
Из того что я понял у вас получилось не хилое такое спагетти. Надо вникать и распутывать.
Виджеты это независимые части приложения,

где лежат необходимые им ресурсы приложения им должно сообщить само приложение в рантайме
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Эй приложение нам нужны твои картинки - вам туда ребята
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
Alex CherryTea
Не это я просто офигиваю.
Из того что я понял у вас получилось не хилое такое спагетти. Надо вникать и распутывать.
Виджеты это независимые части приложения,

где лежат необходимые им ресурсы приложения им должно сообщить само приложение в рантайме
никакого спагетти нет
виджеты это часть нашего приложения выделенная в отдельные umd либы для использования на внешних ресурсах

условно у нас в аппе есть компонент А, мы берем и заворачиваем его в виджет и теперь он есть и в аппе и есть возможность юзать на внешних лендах
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
process.exit(‿|‿)
никакого спагетти нет
виджеты это часть нашего приложения выделенная в отдельные umd либы для использования на внешних ресурсах

условно у нас в аппе есть компонент А, мы берем и заворачиваем его в виджет и теперь он есть и в аппе и есть возможность юзать на внешних лендах
На момент билда вы знаете где они будут лежать?
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
где лежат необходимые им ресурсы приложения им должно сообщить само приложение в рантайме
о чем и речь
это тебе делает вебпак где ты указываешь publicPath в который непосредственно прокидывается во время деплоя ASSET_HOST
но в таком случае этот publicPath в вебпаке используется и для загрузки чанков
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
Alex CherryTea
На момент билда вы знаете где они будут лежать?
на момент билда мы знаем откуда брать в рантайме ассеты (ASSET_HOST), а откуда брать в рантайме чанки виджетов (WIDGET_HOST)
но вебпак не умеет чанки грузить с другого publicPath
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
process.exit(‿|‿)
на момент билда мы знаем откуда брать в рантайме ассеты (ASSET_HOST), а откуда брать в рантайме чанки виджетов (WIDGET_HOST)
но вебпак не умеет чанки грузить с другого publicPath
Вебпак дев сервер в смысле? Сам то вебпак паблик использует только для ссылок внутри кода
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
Alex CherryTea
Вебпак дев сервер в смысле? Сам то вебпак паблик использует только для ссылок внутри кода
я про рантайм вебпаковский который в бандле конечном
где есть все хэши чанков и куда за ними ходить
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
process.exit(‿|‿)
я про рантайм вебпаковский который в бандле конечном
где есть все хэши чанков и куда за ними ходить
В динамических импортах?
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
да
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
то есть у виджетов точка входа одна, на странице где надо встроить виджеты кидаешь конфиг и точка входа через лоадабл загрузит нужный виджет
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
  Widgets.create({
   analyticContext: { prefix: 'app', module: 'main' },
   loadFonts: true,
   widgets: [
     {
       name: 'enroll',
       container: document.getElementById('enroll'),
     },
     {
       name: 'review',
       container: document.getElementById('review'),
     },
   ]
 })
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
в общем я вроде понятно выразился что надо в конечном бандле ходить уметь за картинками на один хост, а за чанками на другой
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
process.exit(‿|‿)
то есть у виджетов точка входа одна, на странице где надо встроить виджеты кидаешь конфиг и точка входа через лоадабл загрузит нужный виджет
Блин ты меня сломал.
Тут конфига не хватит, надо писать свой плагин и искать хук в котором перед генерацией кода исправлять пути именно к чанкам
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
что собственно и делает ReplaceInFileWebpackPlugin
он подменяет только один публичный урл для загрузки чанков в конечном сбилженном файле
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
process.exit(‿|‿)
что собственно и делает ReplaceInFileWebpackPlugin
он подменяет только один публичный урл для загрузки чанков в конечном сбилженном файле
Или файлах
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
в файлах не надо...надо только в рантайме вебпаковском
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
один файл всего
источник

A

Alex CherryTea in Webpack — русскоговорящее сообщество
Пажжи но у тебя же могут быть чанки с ссылками на чанки
источник

p

process.exit(‿|‿)... in Webpack — русскоговорящее сообщество
ну и вебпак тебе ж соберет все их хеши и будет ходить за ними сам
источник