我正在尝试将我的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,optimizer,environment files,...)
"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"
}
]
}
}
您可以获取更多信息here来管理特定于环境的配置。
正如下面的其他响应中所指出的,如果您需要添加新的“环境”,则需要向构建任务添加新配置,并根据您的需要添加到服务和测试任务。
添加新环境
编辑:要说清楚,必须在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配置文件
This答案似乎很好。
然而,它导致我导致错误,因为它导致
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"
对于Angular 2 - 5,请参阅文章Multiple Environment in angular
对于Angular 6使用ng serve --configuration=dev
注意:同样的文章也请参阅角度6。但无论你在哪里找到
--env
而不是使用--configuration
。这适用于角度6。
你可以试试:ng serve --configuration=dev/prod
建立用途:ng build --prod --configuration=dev
希望您使用的是另一种环境。
使用此命令构建Angular 6
ng build --prod --configuration=dev
您可以将命令ng serve -c dev
用于生产环境的开发环境ng serve -c prod
而建筑也同样适用。您可以使用ng build -c dev
进行开发构建
Angular不再支持 - 而是必须使用
ng serve --c dev
对于发展环境,
ng serve --c prod
用于生产。希望这可以帮助。