Angular 6 + CLI (TypeScript) - как остановить генерацию.спекуляция.ТС тестовые файлы

Я знаю, что это своего рода плохая практика, но пара со мной:

Я использую Angular-CLI и особенно ng g для генерации всех моих классов, однако, меня не интересует ни один тестовый файл *.spec.ts и я знаю, что есть два флага (--inline-template,--inline-style) для обработки встроенных CSS и HTML вместо разделенных файлов. и для спецификации флаг по умолчанию установлен в true --spec

так что для каждого запуска, да, я могу сделать это ng g c foo --it --is --spec=false

но как отключить создание тестовые файлы по всему миру? есть ли какие-либо настройки по умолчанию для него?

опрометчиво, я сделал некоторые вещи, как (который не работает):

ng set spec=false --global

затем попытался настроить файл настроек ts src/tsconfig.json путем заполнения массива exclude.

"exclude": [
    "**/*.spec.ts"
]

4 ответов


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

ng set defaults.spec.FILETYPE false

например:

ng set defaults.spec.component false // Won't generate spec files for .component files

В качестве альтернативы вы можете просто отключить все генерацию файлов спецификаций из angular-cli.файл json.

{
  ...
  "defaults": {
    "spec": {
      "class": false,
      "component": false,
      "directive": false,
      "module": false,
      "pipe": false,
      "service": false
    }
  }
}

Для Угловой 6>

конфигурация (например, генерация спецификаций) может быть выполнена с помощью углового CLI или вручную.


угловой CLI

ошибка:

на ng set defaults.spec.component false команды приводит к ошибке: get/set have been deprecated in favor of the config command.

ng set got changed to ng config.

использование углового CLI (использование команды config):

настройки генерации спецификаций, встроенных шаблонов, встроенного стиля и т. д. внутри angular.json теперь сохраняются внутри schematics.@schematics/angular.<file-type>.<setting>.

Run ng config schematics.@schematics/angular.component.spec false для настройки спецификации для компонентов. Эта команда добавляет параметр внутри свойства schematics в поле angular.json file (показано ниже).


вручную

настроить вручную внутри angular.json:

отображаются все настраиваемые параметры для каждого типа файла (схемы Опции).

{
  // ...
  "schematics": {
    "@schematics/angular:component": {
      "changeDetection": "Default",
      "export": false,
      "flat": false,
      "inlineStyle": false,
      "inlineTemplate": false,
      "module": "",
      "prefix": "",
      "selector": "",
      "skipImport": false,
      "spec": true,
      "styleext": "css",
      "viewEncapsulation": "Emulated"
    },
    "@schematics/angular:module": {
      "commonModule": true,
      "flat": false,
      "module": "",
      "routing": false,
      "routingScope": "Child",
      "spec": true
    },
    "@schematics/angular:service": {
      "flat": true,
      "spec": true
    },
    "@schematics/angular:pipe": {
      "export": false,
      "flat": true,
      "module": "",
      "skipImport": false,
      "spec": true
    },
    "@schematics/angular:directive": {
      "export": false,
      "flat": true,
      "module": "",
      "prefix": "app",
      "selector": "",
      "skipImport": false,
      "spec": true
    },
    "@schematics/angular:class": {
      "spec": true
    }
  }
  // ...
}

угловой файл рабочего пространства CLI (угловой.в JSON) на угловые на GitHub

параметры схемы внутри схемы.в JSON

как сделать X в угловом CLI v6


просто обновить Sabbir Рахмана:

в версии 1.0.2 CLI вам нужно будет установить файл спецификации в false для каждого отдельного типа. Ниже приведен пример:

"defaults": {
    "styleExt": "scss",
    "component": {
      "spec": false
    },
    "service": {
      "spec": false
    },
    "directive": {
      "spec": false
    },
    "class": {
      "spec": false // Set to false by default
    },
    "module": {
      "spec": false // Set to false by default
    },
    "pipe": {
      "spec": false
    }
  }

Если вы используете v6 и вам нужно отредактировать свой угловой.в JSON

вы можете редактировать схему для вашего проекта.

"schematics": {
    "@schematics/angular:component": {
      "styleext": "scss",
      "spec": false
    },
    "@schematics/angular:class": {
      "spec": false
    },
    "@schematics/angular:directive": {
      "spec": false
    },
    "@schematics/angular:guard": {
      "spec": false
    },
    "@schematics/angular:module": {
      "spec": false
    },
    "@schematics/angular:pipe": {
      "spec": false
    },
    "@schematics/angular:service": {
      "spec": false
    }
  },