在 Angular 6 中生成没有 *.spec.ts 的组件

问题描述 投票:0回答:5

在以前的版本中,可以使用 .angular-cli.json 禁用spec.ts,如下所示。 有没有办法用 6.0.0 版本中的 angular.json 来做到这一点?

"defaults": {
    "component": { 
        "spec": false 
    },
    "service": { 
        "spec": false 
    },
    ...
}
angular6
5个回答
14
投票

在版本“6.0.0”中 *.spec.ts 可以使用 angular.json 禁用

注意:不要忘记将“前缀”属性值“fmyp”和“fmp”更改为您的值。

"schematics": {
    "@schematics/angular:component": {
      "prefix": "fmyp",
      "styleext": "css",
      "spec": false
    },
    "@schematics/angular:directive": {
      "prefix": "fmp",
      "spec": false
    },
    "@schematics/angular:module": {
      "spec": false
    },
    "@schematics/angular:service": {
      "spec": false
    },
    "@schematics/angular:pipe": {
      "spec": false
    },
    "@schematics/angular:class": {
      "spec": false
    }
  }

11
投票

简单的方法是您可以像以前版本一样使用 CLI。

新语法是

ng generate component component-name --skipTests=true

这将创建没有 .spec 文件的组件。 快乐编码:)


10
投票

方法一:

您还可以在使用 Angular-cli 创建事物时通过添加“--no-spec”来禁用规范生成

ng generate component my-component --no-spec

方法二: 在 angular.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
    }
  },

2
投票

编辑2024年: 下面列出的所有方法都适用于角度 15、16 和 17。于 2024 年 5 月进行了测试。

在不更改

angular.json
文件的情况下执行此操作的最简单方法是使用此命令(在 v13 和 v14 中尝试过):

ng generate component test-component --skip-tests true

如果您只想在子文件夹中生成

ts
html
文件,那么您需要使用以下命令:

ng generate component test-component --skip-tests true --style none

如果您需要它们而不需要任何子文件夹,请使用以下命令:

ng generate component test-component --skip-tests true --style none --flat

0
投票

// for ealier versions
ng generate component path/filename --no-spec
// Or
ng generate component path/filename --spec false

// for later versions
ng generate component path/filename --skipTests=true
// Note: path is relative to src/app folder

© www.soinside.com 2019 - 2024. All rights reserved.