Новый подход к работе с source-map в webpack
На прошлой неделе вышел webpack v5.47.0 со скромным ченджлогом «improve source-map performance». Да, это опять пост про сорсмапы, но не всё так просто.
На деле за этим скрываются огромные изменения. За сорсмапы в вебпаке отвечает webpack-sources. Он в свою очередь использовал source-map. Как раз таки именно вебпак сподвиг меня сделать форк source-map. Сам Тобиас (автор вебпака) ещё пару лет назад писал «In my opinion using WASM is not really needed for good performance in source-map. … I really thinking about creating my own version of source-map without that stuff.»
И вот, Тобиас написал собственную имплементацию работы с сорсмапами. Если интересно посмотреть код (которого довольно таки много, а ещё Тобиас часто комитит в мастер напрямую) то вот дифф.
Как итог, компиляция стала на 12% быстрее. Ну а я лишился 16-ти миллионов потенциальных загрузок в неделю 🙂
P.S. Обновляться я пока не советую, т.к. рефакторинг действительно очень большой и какие-то фиксы появляются вот прямо сейчас. Подождите 1-2 минорные версии вебпака.
На прошлой неделе вышел webpack v5.47.0 со скромным ченджлогом «improve source-map performance». Да, это опять пост про сорсмапы, но не всё так просто.
На деле за этим скрываются огромные изменения. За сорсмапы в вебпаке отвечает webpack-sources. Он в свою очередь использовал source-map. Как раз таки именно вебпак сподвиг меня сделать форк source-map. Сам Тобиас (автор вебпака) ещё пару лет назад писал «In my opinion using WASM is not really needed for good performance in source-map. … I really thinking about creating my own version of source-map without that stuff.»
И вот, Тобиас написал собственную имплементацию работы с сорсмапами. Если интересно посмотреть код (которого довольно таки много, а ещё Тобиас часто комитит в мастер напрямую) то вот дифф.
Как итог, компиляция стала на 12% быстрее. Ну а я лишился 16-ти миллионов потенциальных загрузок в неделю 🙂
P.S. Обновляться я пока не советую, т.к. рефакторинг действительно очень большой и какие-то фиксы появляются вот прямо сейчас. Подождите 1-2 минорные версии вебпака.