Конфигурация углового рабочего пространства
Файл с именем angular.json на корневом уровне рабочей области Angular предоставляет настройки конфигурации по умолчанию для всей рабочей области и проекта для инструментов сборки и разработки, предоставляемых Angular CLI. Значения пути, указанные в конфигурации, относятся к корневой папке рабочего пространства.
Общая структура JSON
На верхнем уровне angular.json несколько свойств настраивают рабочее пространство, а раздел проектов содержит оставшиеся параметры конфигурации для каждого проекта.
- версия: версия файла конфигурации.
- newProjectRoot: путь, по которому создаются новые проекты. Абсолют или относительно папки рабочей области.
- defaultProject: имя проекта по умолчанию для использования в командах, не было указано в качестве аргумента. Когда вы используете ng new для создания нового приложения в новом рабочем пространстве, это приложение является проектом по умолчанию для рабочего пространства, пока вы не измените его здесь.
- schematics: набор схем, которые настраивают опцию подкоманд для генерации ng по умолчанию для этого рабочего пространства.
- проекты: содержит подраздел для каждого проекта (библиотека, приложение, тестовое приложение e2e) в рабочей области с параметрами конфигурации для каждого проекта.
Исходное приложение, которое вы создаете с помощью ng new app_name, указано в разделе «Проекты» вместе с соответствующим приложением для сквозного тестирования:
projects
app_name
.......
app_name-e2e
.......
Каждое дополнительное приложение, которое вы создаете с помощью приложения ng generate, имеет соответствующий сквозной тестовый проект со своим собственным разделом конфигурации. Когда вы создаете проект библиотеки с помощью ng, создаете библиотеку, проект библиотеки также добавляется в раздел проектов.
Обратите внимание, что раздел проектов файла конфигурации не полностью соответствует структуре файла рабочей области.
- Начальное приложение, созданное с помощью ng new, находится на верхнем уровне файловой структуры рабочей области вместе со своим приложением e2e.
- Дополнительные приложения, приложения e2e и библиотеки помещаются в папку проектов в рабочей области.
Параметры конфигурации проекта
Следующие свойства конфигурации верхнего уровня доступны для каждого проекта в проектах: <имя_проекта>.
````
"my-v7-app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {}
}
````
ИМУЩЕСТВО | ОПИСАНИЕ |
---|---|
корень | Корневая папка для файлов этого проекта относительно папки рабочей области. Пусто для начального приложения, которое находится на верхнем уровне рабочей области. |
sourceRoot | Корневая папка для исходных файлов этого проекта. |
projectType | Один из «приложения» или «библиотеки». Приложение может работать независимо в браузере, а библиотека - нет. И приложение, и его тестовое приложение e2e имеют тип «приложение». |
Префикс | Строка, которую Angular добавляет к сгенерированным селекторам. Может быть настроен для идентификации приложения или области функций. |
Schematics | Набор схем, которые настраивают опцию подкоманды генерации ng по умолчанию для этого проекта. |
Архитектор | Конфигурация по умолчанию для целей Architect Builder для этого проекта. |
Схемы генерации
Схемы угловых генераций - это инструкции по изменению проекта путем добавления файлов или изменения существующих файлов. Отдельные схемы для стандартных команд Angular CLI и генерации собираются в пакете @angular. Укажите имя схемы для подкоманды в формате schematic-package: schematic-name; например, схема для генерации компонента является @angular: component.
Схемы JSON для схем по умолчанию, используемых CLI для генерации проектов и частей проектов, собраны в пакете @ schematics / angular. Схема описывает параметры, доступные для CLI для каждой из подкоманд генерации ng, как показано в выводе --help.
Поля, указанные в схеме, соответствуют допустимым значениям аргументов и значениям по умолчанию для параметров подкоманд CLI. Вы можете обновить файл схемы рабочего пространства, чтобы установить другое значение по умолчанию для параметра подкоманды.
Параметры конфигурации инструмента проекта
Архитектор - это инструмент, который CLI использует для выполнения сложных задач, таких как компиляция и запуск теста, в соответствии с предоставленными конфигурациями. Раздел Architect в angular.json содержит набор целей Architect. Многие из целей соответствуют командам CLI, которые запускают их. Некоторые дополнительные предопределенные цели могут быть запущены с помощью команды ng run, и вы можете определить свои собственные цели.
Каждый целевой объект указывает построителя для этой цели, который представляет собой пакет npm для инструмента, который запускает Architect. Кроме того, у каждой цели есть раздел параметров, который настраивает параметры по умолчанию для цели, и раздел конфигурации, в котором указаны и указаны альтернативные конфигурации для цели.
````
"architect": {
"build": { },
"serve": { },
"e2e" : { },
"test": { },
"lint": { },
"extract-i18n": { },
"server": { },
"app-shell": { }
}
````
- В разделе architect / build настраиваются параметры по умолчанию для команды ng build.
- Раздел architect / serve переопределяет значения по умолчанию для build и предоставляет дополнительные значения по умолчанию для команды ng serve. В дополнение к параметрам, доступным для команды ng build, он добавляет параметры, относящиеся к обслуживанию приложения.
- Раздел architect / e2e переопределяет значения по умолчанию для параметров сборки для создания приложений сквозного тестирования с помощью команды ng e2e.
- Раздел architect / test переопределяет значения по умолчанию для параметров сборки для тестовых сборок и предоставляет дополнительные значения по умолчанию для запуска теста для команды ng test.
- В разделе architect / lint настраиваются параметры по умолчанию для команды ng lint, которая выполняет анализ кода исходных файлов проекта. Средство для рисования по умолчанию для Angular - TSLint.
- В разделе architect / extract-i18n настраиваются значения по умолчанию для параметров инструмента ng-xi18n, используемого командой ng xi18n, которая извлекает отмеченные строки сообщений из исходного кода и выводит файлы перевода.
- В разделе «Архитектор / сервер» настраиваются параметры по умолчанию для создания универсального приложения с рендерингом на стороне сервера с помощью команды ng run <project>: server.
- В разделе architect / app-shell настраиваются параметры по умолчанию для создания оболочки приложения для прогрессивного веб-приложения (PWA) с помощью команды ng run <project>: app-shell.
В общем, параметры, для которых вы можете настроить значения по умолчанию, соответствуют параметрам команды, перечисленным на странице справки CLI для каждой команды. Обратите внимание, что все параметры в файле конфигурации должны использовать camelCase, а не dash-case.
Построить цель
В разделе architect / build настраиваются параметры по умолчанию для команды ng build. Он имеет следующие свойства верхнего уровня.
ИМУЩЕСТВО | ОПИСАНИЕ |
---|---|
строитель | Пакет npm для инструмента сборки, используемого для создания этой цели. По умолчанию это @ angular-devkit / build-angular: browser, который использует пакетный пакет webpack. |
опции | Этот раздел содержит параметры цели сборки по умолчанию, используемые, если не указана именованная альтернативная конфигурация. |
конфигурации | Этот раздел определяет и называет альтернативные конфигурации для различных предполагаемых мест назначения. Он содержит раздел для каждой именованной конфигурации, который устанавливает параметры по умолчанию для этой предполагаемой среды. |
Цели сборки по умолчанию
Angular определяет компоновщики по умолчанию для использования с инструментом Architect и командой ng run. Разработчики по умолчанию предоставляют реализации, которые используют определенный инструмент для выполнения сложной операции.
Схемы JSON, которые определяют параметры и значения по умолчанию для каждого из этих сборщиков по умолчанию, собраны в пакете @ angular-devkit / build-angular. Схемы настраивают параметры для следующих целей сборки Architect:
- приложение-оболочка
- браузер
- Dev-сервер
- Экстракт-i18n
- карма
- транспортир
- сервер
- tslint
Альтернативные конфигурации сборки
По умолчанию определена производственная конфигурация, а команда ng build имеет параметр --prod, который строит с использованием этой конфигурации. Производственная конфигурация устанавливает значения по умолчанию, которые оптимизируют приложение несколькими способами, такими как объединение файлов, минимизация лишних пробелов, удаление комментариев и мертвого кода и переписывание кода для использования коротких, загадочных имен («минификация»).
Вы можете определить и назвать дополнительные альтернативные конфигурации (например, stage), соответствующие вашему процессу разработки. Некоторые примеры различных конфигураций сборки - это стабильные, архивные и последующие файлы, используемые самим AIO, а также индивидуальные настройки для конкретных локалей, необходимые для построения локализованных версий приложения. Подробнее см. Интернационализация (i18n).
Дополнительные параметры сборки и тестирования
Настраиваемые параметры для стандартной или целевой сборки обычно соответствуют параметрам, доступным для команд ng build, ng serve и ng test. Подробнее об этих параметрах и их возможных значениях см. В справочнике по CLI.
Некоторые дополнительные параметры (перечисленные ниже) могут быть установлены только через файл конфигурации, либо путем непосредственного редактирования, либо с помощью команды ng config.
ВАРИАНТЫ СВОЙСТВ | ОПИСАНИЕ |
---|---|
fileReplacements | Объект, содержащий файлы и их замены во время компиляции. |
stylePreprocessorOptions | Объект, содержащий пары опция-значение для передачи препроцессорам стиля. |
активы | Объект, содержащий пути к статическим ресурсам для добавления в глобальный контекст проекта. Пути по умолчанию указывают на файл значка проекта и его папку ресурсов. Смотрите больше ниже. |
стили | Объект, содержащий файлы стилей для добавления в глобальный контекст проекта. Angular CLI поддерживает импорт CSS и все основные препроцессоры CSS: sass / scss, less и стилус. |
скрипты | Объект, содержащий файлы сценариев JavaScript для добавления в глобальный контекст проекта. Скрипты загружаются точно так же, как если бы вы добавили их в тег <script> внутри index.html. |
бюджеты | Тип размера бюджета по умолчанию и пороговые значения для всего или частей вашего приложения. Вы можете настроить построитель так, чтобы он сообщал о предупреждении или ошибке, когда выходные данные достигают или превышают пороговый размер. |
Конфигурация активов проекта
Каждая целевая конфигурация сборки может включать в себя массив ресурсов, в котором перечислены файлы или папки, которые вы хотите скопировать как есть при сборке проекта. По умолчанию папки src / assets / и src / favicon.ico копируются.
```
"assets": [
"src/assets",
"src/favicon.ico"
]
```
Чтобы исключить актив, вы можете удалить его из конфигурации активов.
Вы можете дополнительно настроить активы для копирования, указав активы как объекты, а не как простые пути относительно корня рабочей области. Объект спецификации актива может иметь следующие поля.
- glob: узел-glob, использующий вход как базовый каталог.
- вход: путь относительно корня рабочего пространства.
- output: путь относительно outDir (по умолчанию это dist / project-name). Из-за проблем безопасности CLI никогда не записывает файлы за пределы выходного пути проекта.
- игнорировать: список глобусов для исключения.
Например, пути активов по умолчанию могут быть представлены более подробно с помощью следующих объектов.
```
"assets": [
{ "glob": "**/*", "input": "src/assets/", "output": "/assets/" },
{ "glob": "favicon.ico", "input": "src/", "output": "/" },
]
```
Вы можете использовать эту расширенную конфигурацию для копирования ресурсов за пределы вашего проекта. Например, следующая конфигурация копирует ресурсы из пакета узла:
"assets": [
{"glob":"**/*", "input": "./node_modules/some-package/images", "output": "/some-package/" },
]
Содержимое node_modules / some-package / images / будет доступно в dist / some-package /.
В следующем примере используется поле игнорирования, чтобы исключить копирование определенных файлов в папке активов в сборку:
"assets": [
{ "glob": "**/*", "input": "src/assets/", "ignore": ["**/*.svg"], "output": "/assets/" },
]
Предыдущий: Внедрение зависимостей в действии
Далее: Конфигурация TypeScript
Новый контент: Composer: менеджер зависимостей для PHP , R программирования