Я запускаю приложение Rails в контейнере Docker, но у меня проблемы со средой разработки, так как я не могу надежно заставить изменения javascript распространяться на мое приложение, работающее на локальном хосте.
Описание шагов по выявлению проблемы:
- Если я обновлю представление, я увижу в консоли, которую компилирует webpacker.
- Он генерирует новый актив с закрытым кешем в public / packs
admin-7c69920b702f68258e99.js
- Файл manifest.json отражает это обновление
"admin.js": "/packs/admin-7c69920b702f68258e99.js"
- Я могу обновлять представление несколько раз, но на вкладке сети видно, что старый актив называется
admin-4cf5f7c7d6c5ad665fc6.js
.
Я пробовал следующий процесс, но он не запускает обновление ресурсов даже с отключенным кешем.
- Обновите представление в браузере, чтобы запустить компиляцию веб-пакета.
- Перезапустите сервер Rails, выйдя из Docker и запустив
docker-compose up
- Обновить вид
Обычно мне приходится останавливать и запускать сервер Rails во второй раз, чтобы запустить обновление ресурсов. Это слишком похоже на вуду для эффективной среды разработки.
Я хотел бы найти способ надежно гарантировать, что последние активы отражаются в моей среде разработки, без необходимости вручную следить за именами файлов ресурсов, чтобы подтвердить, что обновление произошло.
Есть ли уловка для перезагрузки активов, которую я мог бы пропустить?
Я использую ruby: 2.3.7 и Rails 5.2.2.1