我正在尝试将Angular 5.2应用更新为Angular 6.我成功地遵循了Angular更新指南中的说明(包括angular-cli
到v6的更新),现在我正在尝试通过< / p>
ng serve --env=local
但是这给了我错误:
未知选项:&#39; - env&#39;
我使用多个环境(dev/local/prod
),这就是它在Angular 5.2中的工作方式。如何在Angular 6中设置环境?
答案 0 :(得分:188)
您需要使用新的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"
}
]
}
}
您可以获取更多信息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配置文件
答案 1 :(得分:33)
https://stackoverflow.com/a/50174679/1484847答案似乎很好。
但是,它导致我出错,因为它导致构建中出现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"
答案 2 :(得分:4)
您可以尝试:ng serve --configuration=dev/prod
要构建,请使用:ng build --prod --configuration=dev
希望您使用的是另一种环境。
答案 3 :(得分:3)
对于Angular 2-5,请参阅文章Multiple Environment in angular
对于Angular 6,请使用ng serve --configuration=dev
注意:角度6也请参考同一篇文章。但是无论您在哪里找到
--env
,都应使用--configuration
。角度6效果很好。
答案 4 :(得分:1)
使用此命令构建Angular 6
ng build --prod --configuration=dev
答案 5 :(得分:1)
您可以在开发环境中使用命令ng serve -c dev
ng serve -c prod
用于生产环境
在构建时也同样适用。您可以使用ng build -c dev
进行开发构建
答案 6 :(得分:0)
Angular不再支持--env,而是必须使用
ng serve --c dev
用于开发环境,
ng serve --c prod
用于生产。希望这会有所帮助。