Webpacker медленно и дублирует файлы в общедоступных / ресурсах - PullRequest
0 голосов
/ 29 февраля 2020

Использование Rails / Webpacker для компиляции ресурсов.

Webpacker начал работать очень медленно (время компиляции 3 минуты). Я заметил, что папка public/assets заполняется отпечатками пальцев, такими как ..

application-1e69eb85a81f4a963fde.js application-828cf61e1e6dc295ffee.js application-95ba1bc02eaf571bca3d.js

И новые создаются с каждой страницей refre sh.

Я запускаю сервер в режиме разработки, я не уверен, почему каждый рефр sh приводит к новому отпечатку пальца. Но я думаю, что именно это и является причиной проблемы.

Кто-нибудь испытывал это?

webpack.yml

# Note: You must restart bin/webpack-dev-server for changes to take effect

default: &default
  source_path: client
  source_entry_path: bundles
  public_output_path: assets/bundles # outputs to => public/assets/bundles
  cache_path: tmp/cache/webpacker
  cache_manifest: false

  extensions:
    - .jsx
    - .js
    - es6.js
    - .sass
    - .scss
    - .worker
    - .worker.js
    - .css
    - .module.sass
    - .module.scss
    - .module.css
    - .png
    - .svg
    - .gif
    - .jpeg
    - .jpg
    - .eot
    - .svg
    - .ttf
    - .woff

development:
  <<: *default
  compile: true

  # Reference: https://webpack.js.org/configuration/dev-server/
  dev_server:
    https: false
    host: localhost
    port: 3035
    public: localhost:3035
    hmr: true
    # Inline should be set to true if using HMR
    inline: true
    overlay: true
    compress: true
    disable_host_check: true
    use_local_ip: false
    quiet: false
    headers:
      'Access-Control-Allow-Origin': '*'
    watch_options:
      ignored: /node_modules/


test:
  <<: *default
  compile: true

  # Compile test bundles to a separate directory
  public_output_path: bundles-test

production:
  <<: *default

  # Production depends on precompilation of packs prior to booting for performance.
  compile: false

  # Cache manifest.json for performance
  cache_manifest: true

1 Ответ

1 голос
/ 01 марта 2020

Я добавляю этот ответ, чтобы он мог помочь другим пользователям.

Отключите настройку hmr, если вы не хотите обновлять файлы js без перезагрузки браузера.

hmr: false

В RAILS webpacker.yml имеет различные настройки, и одним из них является hmr, то есть замена горячего модуля , функция Webpack, которая обновляет ваш Javascript без перезагрузки браузера. «Модуль» в замене горячего модуля относится только к каждому из ваших Javascript файлов исходного кода. Чтобы эти обновления происходили, Webpack устанавливает HMR Runtime в ваш выходной комплект.

для получения дополнительной информации о HMR- ПРОВЕРИТЬ ЭТОТ

...