Зачем вообще нужен Sprockets?
Давным давно приличных сборщиков JS/SCSS кода было не так много. И DHH решил что надо бы сделать свой вариант решения задачи.
1️⃣ Надо было всем файлам-ассетам (картинки, js, css) в продакшене добавлять HASH. Это было нужно, чтобы бороться с агрессивным кешированием браузеров и обеспечивать в браузере самые свежие скрипты и стили.
Практика хорошая. Однако, я всегда задавался вопросом. Экосистема Rails такая умная и классная, но она ничтожно мала по сравнению с PHP, Python, NodeJS. И в этих экосистемах люди не сильно то парятся о добавлении hash к продакшн файлам.
Живут же как-то люди в других стеках и зарабатывают миллионы миллиардов без добавления hash к ассетам.
Кстати, а вы что думаете на этот счет?
2️⃣ Sprockets помогал делать компиляцию scss в css, coffee script в javascript, минимизировать бандлы и держать их под контролем через ручное управление.
Однако, этот функционал совсем не уникальный, а ручное управление бандлами, через манифест файлы, нууу, скажем так, не самый современный подход.
3️⃣ К 2020 году экосистема фронтенда была настолько зрелой и живущей по своим правилам, что делать свой фреймворко-зависимый сборщик кажется странным. Но у DHH есть жгучее желание удерживать за Rails завание full-stack фреймворка. Иначе концепция всей его работы за 20 лет развалится.
В этом я вижу причину его попыток создания и промоушена Propshaft и ImportMaps.
Это настолько выдающиеся инструменты, что никто за границами Rails экосистемы активно ими не пользуется; А rails разработчики не всегда понимают как они в принципе работают. Одни сплошные рекламные Wow и Amazing, а на практике — задают простой вопрос, а как оно себя ведет на больших проектах? Кто-то уже пробовал? А что с поддержкой? И сами дают ответ — подождем года 3. Вдруг DHH опять что-то придумает.