我正在尝试将我的 Angular 5.2 应用程序更新到 Angular 6。我成功地遵循了 Angular 更新指南中的说明(包括更新angular-cli
到 v6),现在我正在尝试通过
ng serve --env=local
但这给了我错误:
未知选项:'--env'
我使用多个环境 ( dev/local/prod
),这就是它在 Angular 5.2 中的工作方式。我现在如何在 Angular 6 中设置环境?
我正在尝试将我的 Angular 5.2 应用程序更新到 Angular 6。我成功地遵循了 Angular 更新指南中的说明(包括更新angular-cli
到 v6),现在我正在尝试通过
ng serve --env=local
但这给了我错误:
未知选项:'--env'
我使用多个环境 ( dev/local/prod
),这就是它在 Angular 5.2 中的工作方式。我现在如何在 Angular 6 中设置环境?
您需要使用新configuration
选项(这适用于ng build
并且ng serve
也适用)
ng serve --configuration=local
或者
ng serve -c local
如果您查看您的angular.json
文件,您会发现您可以更好地控制每个配置的设置(aot、优化器、环境文件……)
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}
您可以在此处获取更多信息以管理特定于环境的配置。
正如下面其他回复中所指出的,如果您需要添加新的“环境”,则需要将新配置添加到构建任务中,并且根据您的需要,还需要添加到服务和测试任务中。
添加新环境
编辑:为了清楚起见,必须在该build
部分中指定文件替换。因此,如果您想使用ng serve
特定environment
文件(例如dev2),您首先需要修改该build
部分以添加新的dev2配置
"build": {
"configurations": {
"dev2": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev2.ts"
}
/* You can add all other options here, such as aot, optimization, ... */
],
"serviceWorker": true
},
然后修改您的serve
部分以添加新配置,指向您刚刚声明的dev2配置 build
"serve":
"configurations": {
"dev2": {
"browserTarget": "projectName:build:dev2"
}
然后你就可以使用ng serve -c dev2
了,这将使用 dev2 配置文件
这个答案似乎不错。
但是,它导致我出现错误,因为它导致
Configuration 'xyz' could not be found in project ...
构建错误。
不仅需要更新构建配置,还需要提供服务
。
所以只是为了不引起混淆:
--env
不支持angular 6
--env
变成了--configuration
|| -c
(现在更强大了)angular.json
文件进行一些更改:
{ ... "build": "configurations": ...
属性中添加新配置fileReplacements
部分,(但有更多选项可用){ ... "serve": "configurations": ...
属性中添加新配置browserTarget="your-project-name:build:staging"
你可以试试:ng serve --configuration=dev/prod
构建使用:ng build --prod --configuration=dev
希望您使用的是不同类型的环境。
对于 Angular 2 - 5,请参阅文章Multiple Environment in angular
对于 Angular 6 使用ng serve --configuration=dev
注意:对于 Angular 6,也请参阅同一篇文章。但是无论你在哪里找到,都可以
--env
使用--configuration
. 这适用于 Angular 6。
Angular 不再支持 --env 而是你必须使用
ng serve -c dev
对于开发环境,
ng serve -c prod
用于生产。
注意:-c
或--configuration
您可以将命令ng serve -c dev
用于开发环境
ng serve -c prod
的生产环境
而建筑也同样适用。您可以ng build -c dev
用于开发构建
使用这个命令来构建 Angular 6
ng build --prod --configuration=dev
这适用于 Angular 12
第1步:
"serve":
"configurations": {
"staging": {
"browserTarget": "projectName:build:staging"
}
第 2 步:npx ng 运行 myapp:serve --configuration=staging