我正在尝试将我的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中设置环境?
你需要使用新的配置选项(这也适用于ng build和ng serve)
ng serve --configuration=local
or
ng serve -c local
如果你看你的棱角分明。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"
}
]
}
}
您可以在这里获得有关管理环境特定配置的更多信息。
正如下面的另一个响应所指出的,如果您需要添加一个新的“环境”,您需要向构建任务添加一个新的配置,并且根据您的需要,还需要向服务和测试任务添加一个新的配置。
添加新环境
编辑: 为了说明这一点,必须在构建部分指定文件替换。因此,如果你想在一个特定的环境文件(比如dev2)中使用ng serve,你首先需要修改构建部分以添加一个新的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
},
然后修改您的服务部分以添加一个新的配置,指向您刚刚声明的dev2构建配置
"serve":
"configurations": {
"dev2": {
"browserTarget": "projectName:build:dev2"
}
然后你可以使用ng serve -c dev2,它将使用dev2配置文件
这个答案似乎不错。 然而,它导致了我的一个错误,因为它导致了 在项目中找不到配置“xyz” 构建错误。 它不仅需要更新构建配置,而且还需要服务 的人。
为了不让大家困惑
--env is not supported in angular 6 --env got changed into --configuration || -c (and is now more powerful) to manage various envs, in addition to adding new environment file, it is now required to do some changes in angular.json file: add new configuration in the build { ... "build": "configurations": ... property new build configuration may contain only fileReplacements part, (but more options are available) add new configuration in the serve { ... "serve": "configurations": ... property new serve configuration shall contain of browserTarget="your-project-name:build:staging"
对于Angular 2 - 5,请参考文章《Angular中的多重环境》
对于Angular 6,使用ng serve——configuration=dev
注意:angular 6也可以参考同一篇文章。但是无论你在哪里找到——env而是使用——configuration。这对于angular 6很有效。
你可以试试:ng serve——configuration=dev/prod
构建使用:ng build——prod——configuration=dev
希望你正在使用一种不同的环境。
开发环境可以使用ng serve -c dev命令 Ng serve -c prod用于生产环境
而建筑也同样适用。你可以使用ng build -c dev进行开发构建
Angular不再支持——env,你必须使用
ng serve -c dev
对于发展环境和
ng serve -c prod
用于生产。
注意:-c或——configuration
这适用于Angular 12
步骤1:
"serve":
"configurations": {
"staging": {
"browserTarget": "projectName:build:staging"
}
第 2 步: 运行 MyApp:serve 的 NPX --配置=暂存