Carduelis
@Carduelis
Web-developer, front-end, js, less

Грамотная сборка в продакшен с помощью Webpack. Как готовить?

Интро
Есть большой портал монстр-франкенштейн, много легаси-кода, ливнувших разработчиков. Проводить полный рефакторинг практически невозможно, да и "работает -- не трогай", особенно, когда человек, который писал код, уже уволился.
Текущее положение дел
Одна часть системы полностью собирается webpack, написана на Marionette/Backbone с помощью ES6-модулей. С ней проблем нет. А вот остальной легаси-код и стили было бы неплохо прогонять через uglify/minify и postcss.
Новые элементы системы хотелось бы писать на es6/7.
В результате есть несколько webpack-конфигов под каждую часть системы, каждый из которых делает:
1. Сборку определенных js в папке, выделенной для подсистемы;
2. Сборку всех стилей (так как стили у нас глобальны и один большой бандл на все);
Вопросы
1. Как реализовать систему итерации версий для стилей и других js-bundl'ов? Приходится вручную менять версию в url. Какой бы webpack-плагин или подход лучше бы делал это? (ведь писать придется еще в дополнительный php-файл, который запускает все стили и скрипты)
2. Так как частей системы много (больше 10), они вполне изолированы друг от друга (не считая стилей), конфигов будет много и очень схожих, как это дело лучше оптимизировать? (best-practice)
3. Какой еще набор инструментов/подходов/плагинов стоит использовать (не считая юнит-тестов) при таком подходе?
  • Вопрос задан
  • 994 просмотра
Пригласить эксперта
Ответы на вопрос 1
alfaslash
@alfaslash
frontend-developer
1. Не совсем понял проблему, в каком виде реализуются/должны реализоваться версии для файлов стилей и бандлов? В большинстве случаев достаточно брать хеш от файла и можно делать это средствами php.
2. Зависит от того на сколько схожи будут конфиги:
- Можно импортить конфиг из одного файла и переопределять необходимые параметры в других файлах;
- Можно значения некоторых параметров (напр., plugins, resolve, rules) выносить в отдельные константы и уже их импортить в различные файлы конфигов.
3. Стили можно собирать и gulp'ом, на мой взгляд это удобнее и быстрее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы