#angular-cli
#angular-cli
Вопрос:
При использовании Angular 11 CLI, когда я создаю новый компонент, я могу указать опцию --skip-tests
, чтобы избежать генерации a .component.spec.ts
на этом этапе.
ng generate component --name asdf --module app --skip-tests --dry-run
Когда я создаю новый модуль, содержащий новый компонент ( --route
опция) Я не могу указать эту --skip-tests
опцию.
ng generate module --name asdf --module app --route asdf --routing true --skip-tests --dry-run
Если я это сделаю, я получу сообщение об ошибке:
Unknown option: '--skip-tests'
Есть ли другой способ пропустить генерацию теста в этом случае или он просто не поддерживается generate module
?
Ответ №1:
Согласно этой статье, вы можете либо добавить --skip-tests
флаг при создании проекта в целом, либо при создании отдельных компонентов. С логической точки зрения имеет смысл, что вы не могли применить флаг к модулю, поскольку модули не генерируются с помощью тестовых файлов.
Чтобы внести изменения во весь будущий сгенерированный код, измените свой angular.json
файл, добавив skipTests:true
его в раздел schematics.
"schematics": {
"@schematics/angular:component": {
"style": "scss",
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:module": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
}
Комментарии:
1. Спасибо, статья, на которую вы ссылались, на самом деле косвенно содержит ответ, который заключался бы в том, чтобы вручную отредактировать «схемы» в
angular.json
"skipTests": true
разделе добавление"@schematics/angular:component"
. Я попробовал это, это работает, и это было бы лучшим вариантом для меня. Если вы хотите добавить это к своему ответу, я полагаю, что могу пометить его как правильный.2. Вы также должны добавить один для
@schematics/angular:guard"
.
Ответ №2:
--skip-tests
не поддерживается ng generate module
командой.
--flat
--lint-fix
--module
--project
--route
--routing
--routing-scope
Обновить:
альтернативой является последовательное использование двух команд:
ng generate module --name am amp;amp; ng generate component --name ac --module am --skip-tests --dry-run
amp;amp;
означает выполнение command2 только в том случае, если выполнение command1 завершилось успешно.
обратите внимание, что amp;amp; не поддерживается в интегрированном терминале vscode, возможный обходной путь можно найти здесь
Результат должен быть примерно таким:
Я использую angular CLI версии 10, но angular cli v11 должен давать те же результаты.