是的,Angular CLI可以创建一个工作区,其中包含多个应用程序,并在工作区内共享一个或多个库。以下是解决方法的代码示例:
ng new my-workspace
cd my-workspace
ng generate application my-app1
ng generate application my-app2
ng generate library my-lib
angular.json
文件,并在其中定义应用程序和库的配置:{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"projects": {
"my-app1": {
"root": "projects/my-app1",
"sourceRoot": "projects/my-app1/src",
"projectType": "application",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/my-app1",
"index": "projects/my-app1/src/index.html",
"main": "projects/my-app1/src/main.ts",
"polyfills": "projects/my-app1/src/polyfills.ts",
"tsConfig": "projects/my-app1/tsconfig.app.json",
"assets": [
"projects/my-app1/src/favicon.ico",
"projects/my-app1/src/assets"
],
"styles": [
"projects/my-app1/src/styles.css"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "projects/my-app1/src/environments/environment.ts",
"with": "projects/my-app1/src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "my-app1:build"
},
"configurations": {
"production": {
"browserTarget": "my-app1:build:production"
}
}
}
}
},
"my-app2": {
"root": "projects/my-app2",
"sourceRoot": "projects/my-app2/src",
"projectType": "application",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/my-app2",
"index": "projects/my-app2/src/index.html",
"main": "projects/my-app2/src/main.ts",
"polyfills": "projects/my-app2/src/polyfills.ts",
"tsConfig": "projects/my-app2/tsconfig.app.json",
"assets": [
"projects/my-app2/src/favicon.ico",
"projects/my-app2/src/assets"
],
"styles": [
"projects/my-app2/src/styles.css"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "projects/my-app2/src/environments/environment.ts",
"with": "projects/my-app2/src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "my-app2:build"
},
"configurations": {
"production": {
"browserTarget": "my-app2:build:production"
}
}
}
}
},
"my-lib": {