如何在ionic构建时指定Angular环境?

9

Ionic框架使用Angular
在Angular 6中,可以在./src/environments/environment.stage.ts中定义环境。

在构建Angular应用程序时,我可以使用参数--env=stage--configuration==stage来选择环境。

要构建ionic应用程序,我使用ionic cordova build <platform>,它首先构建Angular应用程序,然后将其打包到Cordova框架中。

如何指定Angular构建的环境或配置?

3个回答

13

您可以在 angular.json 中添加相应的配置项,位于 ionic-cordova-build:

"ionic-cordova-build": {
  "builder": "@ionic/angular-toolkit:cordova-build",
  "options": {
    "browserTarget": "app:build"
  },
  "configurations": {
    "production": {
      "browserTarget": "app:build:production"
    },
    "staging": {
      "browserTarget": "app:build:staging"
    }
  }
},
$ ionic cordova run android --device -c staging
注意在 ionic serve 命令中,-c staging-- -c=staging 的区别。 architect.build.configurations 中必须存在名为 staging 的配置。

1
在我的手上,我创建了一个简单的bash文件。
#!/usr/bin/env bash

env=$1

targetFile=$PWD/src/environment/environment.ts
filePath=$PWD/src/environment/$1.environment.ts

echo REPLACING FILE ENVIRONMENT : $1
cp $filePath $targetFile

我在.gitignore中添加了environment.ts,并创建了dev.environment.tsprod.environment.ts
我切换:
$ bash launcher.sh dev && ionic serve

是的,这与我现在正在做的类似。我希望能找到更加集成的方式 :-). - Martin M

0

我认为没有办法将您的Angular本地参数传递到Ionic应用程序中。

但是,Cordova为您提供了许多管理应用程序的可能性,例如通过hooks功能(请阅读此处)或通过传递特定的配置文件(请参见--buildConfig标志如何工作此处)。

我不太清楚您在尝试实现什么,但是不同的环境有时只意味着将不同的配置文件传递给您的cordova构建命令。由您来以正确的方式启动它。

编辑:

您可能正在寻找ionic cordova build --prod命令...请查看完整文档此处

希望能对您有所帮助...


2
就我所知,Cordova 完全不了解 Angular。在启动 cordova build 之前,Ionic 会构建 Angular 应用程序。ionic cordova build--prod 参数确实可以切换 Angular 的环境/配置,但我有比 developmentprod 更多的阶段(如 emulationstaging),因此我仍在寻找解决方案... - Martin M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接