Размер пакета активов Webpacker - PullRequest
0 голосов
/ 14 апреля 2020

Я только что развернул изменение на своем сайте, но получаю эту ошибку только в рабочей среде:

  01 WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
  01 This can impact web performance.
  01 Assets:
  01   media/images/gallery-feature-bg-cde3a3757c552a1fcd59ff149fc615dd.png (1.58 MiB)
  01   media/images/neil_photo-4e1fe99c16fe48fd2f0fd8c6213f2a4c.png (1.76 MiB)
  01   js/application-f25183b6442d6f9fb906.js (534 KiB)
  01   js/application-f25183b6442d6f9fb906.js.map.gz (524 KiB)
  01   js/application-f25183b6442d6f9fb906.js.map.br (440 KiB)
  01
  01 WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can i…
  01 Entrypoints:
  01   application (693 KiB)
  01       css/application-d8e632aa.css
  01       js/application-f25183b6442d6f9fb906.js

Очевидно, из-за того, что у меня есть веб-упаковщик, имеющий дело с несколькими необходимыми изображениями, размер скомпилированный вывод будет больше. Это нормально для меня. В Интернете постоянно появляются предложения о том, как отключить это предупреждение, но я не уверен, как их реализовать, поскольку использую веб-упаковщик в качестве оболочки веб-пакетов.

Я пытался добавить devtool: none и

performance: 
    hints: false

в мой файл webpacker.yml, но ничего не работает. Как отключить это предупреждение и сделать это в веб-пакере?

1 Ответ

0 голосов
/ 15 апреля 2020

Для Webpacker вы можете настроить производительность веб-пакета следующим образом:

// config/webpack/environment.js

const { environment } = require('@rails/webpacker')

environment.config.merge({
  performance: {
    hints: false
  }
})

module.exports = environment

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

Кроме того, тот факт, что вы получаете предупреждение, является хорошим показателем того, что вы могли бы воспользоваться функциями разделения кода веб-пакета, такими как dynamici c import . Другими словами, лучший ответ на немного другой вопрос - просто «уменьшить размер сборки»

Я бы не рекомендовал отключать devtool, чтобы конкретно решить эту проблему; Позвольте решению использовать исходные карты или нет, и какие использовать, чтобы знать размер сборки вместе с утилитой отладки и другими компромиссами. Например, вы могли бы решить, что опция исходной карты может быть лучшим выбором между размером и утилитой:

// config/webpack/environment.js

const { environment } = require('@rails/webpacker')

environment.config.merge({
  devtool: 'cheap-source-map'
})

module.exports = environment
...