当项目中有多个应用程序时,使用 AngularCLI 生成组件
Use AngularCLI to generate components when there are multiple apps in your project
我的 .angular-cli.json 文件如下所示:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "suman-chrome-extension"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
},
{
"root":"blank-page-src",
"outDir": "blank-page-dist",
"index": "page.html",
"main": "page.ts",
"polyfills": "polyfills.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "blank-page",
},
{
"root":"dev-tools-src",
"outDir": "dev-tools-dist",
"index": "suman-dev-tools.html",
"main": "suman-dev-tools.ts",
"polyfills": "polyfills.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "suman-dev-tools",
}
],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [],
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "scss",
"component": {
}
}
}
我遇到的问题是,当我使用这样的命令时:
ng g service services/foo
它将把这个服务放在第一个应用程序中。即使我 cd
进入子目录也会发生这种情况。
如何在 main/first 以外的应用程序中生成 components/services 等?
你应该给他们每个人起一个像下面这样的名字
.angular-cli.json
apps: [
{
...
"name": "app-1"
...
},
{
...
"name": "app-2"
...
}
]
然后,您可以按照
创建 components/services/pipes/modules
ng g c my-component --app=app-1
或者如果你不想给它们命名(你应该这样命名),你也可以像下面这样使用索引
ng g c my-component --app=0
--> 在第一个应用程序中创建一个组件
ng g c my-component --app=1
--> 在第二个应用程序中创建一个组件
我的 .angular-cli.json 文件如下所示:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "suman-chrome-extension"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
},
{
"root":"blank-page-src",
"outDir": "blank-page-dist",
"index": "page.html",
"main": "page.ts",
"polyfills": "polyfills.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "blank-page",
},
{
"root":"dev-tools-src",
"outDir": "dev-tools-dist",
"index": "suman-dev-tools.html",
"main": "suman-dev-tools.ts",
"polyfills": "polyfills.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "suman-dev-tools",
}
],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [],
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "scss",
"component": {
}
}
}
我遇到的问题是,当我使用这样的命令时:
ng g service services/foo
它将把这个服务放在第一个应用程序中。即使我 cd
进入子目录也会发生这种情况。
如何在 main/first 以外的应用程序中生成 components/services 等?
你应该给他们每个人起一个像下面这样的名字
.angular-cli.json
apps: [
{
...
"name": "app-1"
...
},
{
...
"name": "app-2"
...
}
]
然后,您可以按照
创建 components/services/pipes/modulesng g c my-component --app=app-1
或者如果你不想给它们命名(你应该这样命名),你也可以像下面这样使用索引
ng g c my-component --app=0
--> 在第一个应用程序中创建一个组件
ng g c my-component --app=1
--> 在第二个应用程序中创建一个组件