Webpacker в Rails 5 занимает много времени, чтобы скомпилировать не так много файлов.Как я могу увидеть, что он делает? - PullRequest
0 голосов
/ 11 сентября 2018
[Webpacker] Compiling…

Требуется несколько секунд (6,2 секунды), чтобы скомпилировать любые мои изменения в файлы JavaScript. Это действительно замедляет мою разработку JS.

Есть ли способ узнать, что делает Webpacker в Rails и на какие файлы он тратит большую часть своего времени? Также было бы хорошо, если бы он мог показать, сколько времени использовала каждая библиотека npm.

Я могу вручную запустить команду rails webpacker:compile, но там нет подробного режима.

Любая помощь приветствуется, спасибо!

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

rails webpacker:compile по сути просто работает bin/webpack. См. compiler.rb # L59 . К сожалению, вы не можете передать какие-либо параметры через rake, но вы можете запустить его самостоятельно в подробном режиме, чтобы посмотреть, что происходит:

bin/webpack --verbose

Это немного сложно читать и не дает хорошей информации о профилировании. Вы, вероятно, захотите использовать вместо этого флаг --profile:

bin/webpack --profile

Это показывает, сколько времени потребовалось на компиляцию каждого из ваших пакетов, и насколько велики разные куски кода.

Редактировать : Я заметил, что вы сказали, что webpack-dev-server решает вашу проблему в другом ответе. Пока это возможно, но нашему приложению требуется 7 дополнительных минут для развертывания, потому что наш JS настолько раздут. Я работаю над тем, чтобы все урезать, и знание информации о профилировании для каждого пакета необходимо для сокращения времени развертывания.

0 голосов
/ 11 сентября 2018

Я должен был иметь RTFM:

If you want to use live code reloading, or you have enough JavaScript that on-demand compilation is too slow, you'll need to run ./bin/webpack-dev-server or ruby ./bin/webpack-dev-server. Windows users will need to run these commands in a terminal separate from bundle exec rails s. This process will watch for changes in the app/javascript/packs/*.js files and automatically reload the browser to match.

Запуск ./bin/webpack-dev-server использует перезагрузку живого кода и работает очень быстро!

...