Если ваше приложение доступно непосредственно из Интернета, оптимизация активов может иметь важное значение. С помощью хорошей стратегии вы можете сократить дорогостоящий веб-трафик или увеличить скорость на некоторых мобильных или периферийных клиентах. В некоторых случаях высокооптимизированные страницы могут повысить рейтинг в поиске Google. У самого Google есть хорошая документация по оптимизации контента и тому, почему оптимизация важна.



За несколько дней до появления webpack gulp был полезной утилитой, если вы хотите создавать и оптимизировать активы. Но в 2019 году, если вы разрабатываете угловое веб-приложение, вы, возможно, будете счастливы больше не писать большие и уродливые файлы gulpfile.js.

До появления веб-пакета gulp была полезной утилитой, когда вы хотели создавать и оптимизировать активы или целые приложения. Но в 2019 году, если вы разрабатываете веб-приложение на Angular, вас может порадовать, если вам больше не придется писать большие и некрасивые файлы gulpfile.js.

Вселенная JavaScript движется быстро. Прямо сейчас, когда я пишу эту статью, веб-пакет является современным для создания новых веб-приложений независимо от того, пишете ли вы приложения без фреймворка (VanillaJS 👏) или приложения Angular.

Вселенная JavaScript развивается быстро, но эта статья о Webpack — это современный способ создания новых веб-приложений независимо от того, пишете ли вы приложения без фреймворка (VanillaJS 👏) или приложения Angular.

Webpack отлично справляется со своей работой и имеет большое сообщество. Тем не менее, оптимизация ваших ресурсов в Angular усложняется, поскольку клиент Angular просто копирует их в папку dist, как они есть.

Webpack отлично справляется со своей работой и имеет большое сообщество. Однако оптимизировать ваши активы в Angular сложно, так как клиент angular просто копирует их в папку dist как есть.

1. Добавьте пользовательскую конфигурацию Webpack

npm i -D @angular-builders/custom-webpack

Поскольку angular отбрасывает команду ng eject для настройки конфигурации веб-пакета, этот пакет дает вам возможность внедрить пользовательскую конфигурацию веб-пакета, не касаясь исходной (кстати, это выглядит более безопасным для обновления). Это также дает другие преимущества, такие как изменение index.html, и это хорошо задокументировано.

После установки этого пакета измените builders и добавьте customWebpackConfig в свой angular.json и двигайтесь дальше.

"projects": {
  ...
  "[project]": {
    ...
    "architect": {
      ...
      "[architect-target]": {
        "builder": "@angular-builders/custom-webpack:[browser|server|karma|dev-server]",
        "options": {
          "customWebpackConfig": {
            "path": "webpack.config.js"
          },
              ...
        }


2. Установите плагин препроцессора Webpack

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

npm i -D @jkroepke/webpack-file-preprocessor-plugin

После успешной установки вы можете оптимизировать свои активы прямо сейчас.



3. Создайте файл webpack.conf.js

Рядом с файлом angular.json создайте новый файл с именем webpack.conf.js. Следование примеру из пакета custom-webpack дает хорошее понимание того, как это работает.

В приведенном ниже примере показано, как настроить плагин webpack-file-preprocessor-plugin сверху:

4. Добавьте дополнительных помощников

Minify JSON — первый хороший улов. Но как насчет минимизации файлов HTML или SVG?

Вам понадобятся небольшие вспомогательные утилиты, такие как html-minifier, чтобы заархивировать его, а затем добавить WebpackFilePreprocessorPlugin во второй раз, но с другой конфигурацией:

Сделанный! — Готовый пример вы найдете здесь.

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