在 angular 中编写 angular 个配置
Compose angular configurations in angular
在我的 angular 应用程序中,我需要提供一些位于 src/cms
的静态内容(仅当在本地开发时;在生产站点上,此内容将由后端提供)。为此我做了 (angular.json
):
{
...
"projects": {
"myproject": {
"projectType": "application",
...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"configurations": {
...
"with-content": {
"assets": [
"src/favicon.ico",
"src/assets",
"src/cms"
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myproject:build:with-content"
},
...
},
...
}
}
},
...
}
所以 ng serve
现在很乐意提供 src/cms
的所有内容(在 cms
路径下),我对此很好。
现在我需要给它添加i18n(pt语言)。这意味着将 angular.json
更改为添加:
{
...
"projects": {
"myproject": {
"projectType": "application",
...
"i18n": {
"locales": {
"pt": "src/locale/messages.pt.xlf"
}
},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
...
"localize": true,
...
},
"configurations": {
...
"pt": {
"localize": ["pt"]
},
"with-content": {
...
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myproject:build:with-content"
},
"configurations": {
"pt": {
"browserTarget": "myproject:build:pt"
},
"production": {
"browserTarget": "myproject:build:production"
}
}
},
...
}
}
},
...
}
为了开发 pt 语言环境,我只是 运行 ng serve --configuration=pt
但是我无法访问 cms
.
下的静态文件
当运行在本地与ng serve
连接时,是否可以组合with-content
和pt
两种配置?
或者,或者,将 cms
路径添加到项目,但将其排除在生产构建之外?
您的 CMS 配置在 "with-content" 配置中,您只提供 pt 配置。有两种解决方法
组合配置(这可能是您正在寻找的配置):
在命令行中:--configuration=conf1,conf2
另一种方法是在构建选项中使用 cms 而不是配置
结合您想要的配置进行新配置并在其上提供服务
我找不到使用配置组合(又名组合配置)的方法。
但我可以通过更改默认和生产选项使其工作
默认构建选项包括src/cms
(我们只希望在本地开发中使用的资产):
{
"projects": {
"myproject": {
"projectType": "application",
...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
...
"assets": [
"src/favicon.ico",
"src/assets",
"src/cms"
],
...
生产选项重新定义资产:
},
"configurations": {
"production": {
...
"assets": [
"src/favicon.ico",
"src/assets"
]
}
}
},
本地开发 (ng serve) 的默认选项使用默认构建选项:
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myproject:build"
},
用于本地开发的新配置“pt”,使用“pt”构建配置(基本上声明本地化为葡萄牙语):
"configurations": {
"pt": {
"browserTarget": "myproject:build:pt"
},
}
},
...
}
}
},
...
}
在我的 angular 应用程序中,我需要提供一些位于 src/cms
的静态内容(仅当在本地开发时;在生产站点上,此内容将由后端提供)。为此我做了 (angular.json
):
{
...
"projects": {
"myproject": {
"projectType": "application",
...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"configurations": {
...
"with-content": {
"assets": [
"src/favicon.ico",
"src/assets",
"src/cms"
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myproject:build:with-content"
},
...
},
...
}
}
},
...
}
所以 ng serve
现在很乐意提供 src/cms
的所有内容(在 cms
路径下),我对此很好。
现在我需要给它添加i18n(pt语言)。这意味着将 angular.json
更改为添加:
{
...
"projects": {
"myproject": {
"projectType": "application",
...
"i18n": {
"locales": {
"pt": "src/locale/messages.pt.xlf"
}
},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
...
"localize": true,
...
},
"configurations": {
...
"pt": {
"localize": ["pt"]
},
"with-content": {
...
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myproject:build:with-content"
},
"configurations": {
"pt": {
"browserTarget": "myproject:build:pt"
},
"production": {
"browserTarget": "myproject:build:production"
}
}
},
...
}
}
},
...
}
为了开发 pt 语言环境,我只是 运行 ng serve --configuration=pt
但是我无法访问 cms
.
当运行在本地与ng serve
连接时,是否可以组合with-content
和pt
两种配置?
或者,或者,将 cms
路径添加到项目,但将其排除在生产构建之外?
您的 CMS 配置在 "with-content" 配置中,您只提供 pt 配置。有两种解决方法
组合配置(这可能是您正在寻找的配置):
在命令行中:--configuration=conf1,conf2
另一种方法是在构建选项中使用 cms 而不是配置
结合您想要的配置进行新配置并在其上提供服务
我找不到使用配置组合(又名组合配置)的方法。
但我可以通过更改默认和生产选项使其工作
默认构建选项包括src/cms
(我们只希望在本地开发中使用的资产):
{
"projects": {
"myproject": {
"projectType": "application",
...
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
...
"assets": [
"src/favicon.ico",
"src/assets",
"src/cms"
],
...
生产选项重新定义资产:
},
"configurations": {
"production": {
...
"assets": [
"src/favicon.ico",
"src/assets"
]
}
}
},
本地开发 (ng serve) 的默认选项使用默认构建选项:
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myproject:build"
},
用于本地开发的新配置“pt”,使用“pt”构建配置(基本上声明本地化为葡萄牙语):
"configurations": {
"pt": {
"browserTarget": "myproject:build:pt"
},
}
},
...
}
}
},
...
}