私はそれが悪い習慣の種類であることを知っていますが、私とペアになります:
私はAngular-CLI、特にng g
すべてのクラスを生成しますが、テストファイルには興味がありません*.spec.ts
と2つのフラグ(--inline-template
、--inline-style
)分離されたファイルの代わりにインラインCSSおよびHTMLを処理します。仕様の場合、デフォルトのフラグはtrueに設定されます--spec
実行ごとに、はい、できますng g c foo --it --is --spec=false
しかし、テストファイルの作成をグローバルに無効にする方法は?デフォルト設定はありますか?
Rashly、私は(動作しなかった):のようなことをしました
ng set spec=false --global
次に、ts設定ファイルを構成してみましたsrc/tsconfig.json
除外配列に入力します。
"exclude": [
"**/*.spec.ts"
]
構成(仕様の生成など)は、手動で、またはAngular CLIを使用して実行できます。
1)スニペットをangular.json
のルートにコピーします(すべてのプロジェクト/グローバルに設定を構成します)。
2)または、スニペットをprojects.your-project-name
(特定のプロジェクトの設定を構成)の特定のプロジェクト(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
}
},
ファイルの種類ごとに構成可能なすべてのオプション( 回路図オプション ):
"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
}
},
エラー:
ng set defaults.spec.component false
コマンドの結果、エラーが発生します:get/set have been deprecated in favor of the config command.
ng set got changed to ng config
。
Angular CLI(configコマンドの使用法):
angular.json
内で仕様、インラインテンプレート、インラインスタイリングなどを生成するための設定は、schematics.@schematics/angular.<file-type>.<setting>
内に保持されるようになりました。
ng config schematics.@schematics/angular.component.spec false
を実行して、コンポーネントの仕様を構成します。このコマンドは、angular.json
ファイル内のスケマティックプロパティ内に設定を追加します。
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
}
},
このコマンドを実行して、特定のタイプのファイルのスペックファイル生成を無効にできます。
ng set defaults.spec.FILETYPE false
例えば:
ng set defaults.spec.component false // Won't generate spec files for .component files
または、angular-cli.jsonファイルからのすべてのspecファイル生成を無効にすることもできます。
{
...
"defaults": {
"spec": {
"class": false,
"component": false,
"directive": false,
"module": false,
"pipe": false,
"service": false
}
}
}
更新するだけ 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
}
}
あなたは付け加えられます --spec=false
例
ng g c home --spec=false
ログは
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)
あなたは付け加えられます --skipTests=true|false
trueの場合、spec.tsは生成されません。
例:ng g component componentName --skipTests=true
この行はspec.tsファイルを生成しません
編集:
注:angular 7の時点で、このコマンドは、angularの公式Webサイトで言及されているにもかかわらず、機能しません。ここで https://angular.io/cli/generate#component