Moh*_*ara 35 typescript angular-cli angular2-cli angular
我知道这是一种糟糕的做法,但与我配对:
我正在使用Angular-CLI,特别ng g是生成我的所有类,但是,我对任何测试文件都不感兴趣*.spec.ts,我知道有两个标志(--inline-template,--inline-style)来处理内联CSS和HTML而不是分离文件.对于spec,默认标志设置为true--spec
所以对于每次运行,是的,我可以这样做 ng g c foo --it --is --spec=false
但是如何全局禁用测试文件的创建?它有默认设置吗?
拉什利,我做了一些像(不起作用)的东西:
ng set spec=false --global
然后尝试src/tsconfig.json通过填充exclude数组来配置ts设置文件.
"exclude": [
"**/*.spec.ts"
]
Run Code Online (Sandbox Code Playgroud)
Bra*_*age 48
配置(例如生成规范)可以手动完成或使用Angular CLI完成.
手动配置内部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
}
},
Run Code Online (Sandbox Code Playgroud)
错误:
该projects.your-project-name命令导致错误:angular.json
ng set defaults.spec.component false.
使用Angular CLI(config命令用法):
生成规格,内联模板,内联样式等的get/set have been deprecated in favor of the config command.设置现在在内部保留ng set got changed to ng config.
运行angular.json以配置组件的规范.此命令在schematics.@schematics/angular.<file-type>.<setting>文件中的schematics属性中添加设置(如下所示).
Angular Github上的Angular CLI工作区文件(angular.json)
Pau*_*ory 26
如果您正在使用v6并需要编辑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
}
},
Run Code Online (Sandbox Code Playgroud)
Sab*_*man 24
您可以运行此命令来禁用特定类型文件的spec文件生成:
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
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 13
只是为了更新Sabbir Rahman的答案:
在CLI的1.0.2版中,您必须为每个单独的类型将spec文件设置为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
}
}
Run Code Online (Sandbox Code Playgroud)
小智 10
您可以添加--skipTests=true|false如果为 true 则不会生成任何spec.ts
例子 : ng g component componentName --skipTests=true
此行不会生成任何spec.ts文件
编辑:
注意:从 angular 7 开始,此命令不起作用,即使在 angular 的官方网站上提到了此命令。在这里:https : //angular.io/cli/generate#component
KMJ*_*sen 10
根据Angular/CLI 上的Angular.json这个GitHub 问题,配置略有变化,这导致之前的配置模式发生变化。
老办法
"@schematics/angular:component": {
// true => DO generate spec files, false => DON'T generate them
"spec": true,
"styleext": "scss"
}
Run Code Online (Sandbox Code Playgroud)
新方法:
"@schematics/angular:component": {
// true => DON'T generate spec files, false => DO generate them
"skipTests": true,
"style": "scss"
}
Run Code Online (Sandbox Code Playgroud)
附加参考 => CLI 生成命令的 Angular 文档
小智 8
对于角度 8+:
不推荐使用选项“spec”:改用“skipTests”,因此如果要创建新组件,请使用:
ng g c my-new-component --skipTests=true
Run Code Online (Sandbox Code Playgroud)
"@schematics/angular:component": {"style": "scss","skipTests": true}
Run Code Online (Sandbox Code Playgroud)
只需添加"skipTests":true到您的angular.json文件中即可解决问题
你可以加 --spec=false
例
ng g c home --spec=false
Run Code Online (Sandbox Code Playgroud)
日志将是
CREATE src/app/home/home.component.scss (0 bytes)
CREATE src/app/home/home.component.html (23 bytes)
CREATE src/app/home/home.component.ts (262 bytes)
UPDATE src/app/app.module.ts (467 bytes)
Run Code Online (Sandbox Code Playgroud)