Как я могу собрать к продакшену проект на Angular 9(typescript) с помощью библиотеки «The Closure Library(tools+compiler)»?

Для того чтобы собрать проект на Angular 9 для продакшена с использованием библиотеки The Closure Library (tools+compiler), вам потребуется выполнить несколько шагов. Давайте рассмотрим их подробнее.

Шаг 1: Установка Closure Library
Сначала вам нужно установить The Closure Library, которая включает в себя инструменты Closure Compiler и Closure Tools. Вы можете установить ее с помощью npm командой:

npm install google-closure-library

После этого, вам необходимо добавить путь до библиотеки в ваш Angular проект. Для этого можно внести изменения в файл angular.json следующим образом:

"build": {
  "options": {
    "scripts": [
      {
        "input": "node_modules/google-closure-library/closure/goog/base.js",
        "inject": "shallow",
        "bundleName": "closure-library"
      },
      ...
    ]
  }
},

Шаг 2: Конфигурация Closure Compiler
Теперь нам нужно создать конфигурационный файл для Closure Compiler, который указывает, какие файлы исходного кода нужно собирать и какие параметры использовать. Создайте файл с именем closure-config.js в корневой папке вашего проекта и добавьте следующий код:

{
  "angularJs" : {
    "closure": {
      "compilation_level": "ADVANCED",
      "language_in": "ECMASCRIPT5_STRICT",
      "manage_closure_dependencies": true,
      "output_wrapper": "'(function(){%output%}).call(this);'",
      "entry_point": "<YOUR_MAIN_MODULE_NAME>",
      "externs": [
        "path/to/your/externs/file.js"
      ]
    }
  },
  "level1Optimization": true,
  "angularVersion": 9
}

Вместо "<YOUR_MAIN_MODULE_NAME>" в поле "entry_point" укажите имя вашего главного модуля Angular.

Шаг 3: Обновление сборки Angular
Теперь мы должны обновить скрипты сборки Angular, чтобы они использовали Closure Compiler. Добавьте следующую команду в файл package.json в раздел "scripts":

"scripts": {
  "build:prod": "ng build --prod --aot && npm run closure"
}

Шаг 4: Настройка скрипта сборки с Closure Compiler
Теперь вам нужно создать скрипт сборки с помощью Closure Compiler. Введите следующую команду в ваш файл package.json в раздел "scripts":

"scripts": {
  "closure": "google-closure-compiler --config closure-config.js --output_wrapper default --js '**/*.js' --js '!**/*_spec.js' --warning_level VERBOSE --output_wrapper '(function(){%output%}).call(this)' --language_in ECMASCRIPT6_STRICT --language_out ECMASCRIPT5_STRICT"
}

Шаг 5: Сборка проекта
Теперь, когда все настройки готовы, вы можете собрать свой проект для продакшена с использованием The Closure Library и Closure Compiler. Запустите следующую команду в терминале:

npm run build:prod

Это выполнит сборку вашего проекта Angular 9 с использованием The Closure Library и Closure Compiler для оптимизации и минификации вашего кода. Результатом будет скомпилированный и готовый к развертыванию файлы в папке dist.

Таким образом, вы успешно настроили сборку вашего проекта на Angular 9 для продакшена c использованием библиотеки The Closure Library и Closure Compiler.