В настоящее время мы переводим весь процесс сборки внешнего интерфейса в веб-пакет (sass-компиляция, uglify js и т. Д.). В ходе этого мы также переосмысливаем развертывание ресурсов в целом и имеем совершенно разные мнения в команде.
До сих пор это делалось следующим образом:
- Сборка активов запускается локально вручную
- Скомпилированные активы проверяются в репо (минимизировано и не минимизировано)
- все скомпилированные активы обслуживаются из репозитория во время развертывания
- доступ к неинициализированным активам запрещен структурой папок (/js/minified.js & /js/dev/unminified.js)
Проблема с текущим потоком:
- иногда забывают создавать минимизированные активы (разработчики обычно используют неминифицированные активы)
- часто объединяют конфликты, когда два разработчика меняют активы и запускаютпроцесс сборки (в основном исходная карта)
- нет реальной защиты доступа к незавершенным ресурсам в реальной среде (безопасность по незаметности)
Таким образом, я хотел бы сделать это следующим образом:
- больше нет скомпилированных активов, включенных в репо (gitignore)
- вызвать производственную сборкуобрабатывать автоматически при каждом развертывании
Но некоторым коллегам (в частности, разработчикам бэкэнда) идея не нравится, потому что
- каждый должен запускать процесс сборки после каждого git pull дляиметь последние скомпилированные ресурсы (даже если они не работают с интерфейсом)
- ответственность за успешную сборку активов переходит от разработчика к системе развертывания (они боятся случаев, когда возникают ошибки, например, когда модули узласервер не работает)
Поэтому мне действительно интересно, как другие разработчики решают эту проблему!Как это делается в вашей компании?
1) вы проверяете скомпилированные активы?
2) как вы предоставляете необработанные и минифицированные активы локально и минимизируются только в реальной среде?